h你写的东西,因为我把它复制到Excel的VBA(显然是删除了appXL),它工作得很好。可能是其他VBA的一个限制,不过,它现在工作得很好! Function appXL As Object Set appXL = GetObject(, "Ex
h你写的东西,因为我把它复制到Excel的VBA(显然是删除了appXL),它工作得很好。可能是其他VBA的一个限制,不过,它现在工作得很好!h你写的东西,因为我把它复制到Excel的VBA(显然是删除了appXL),它工作得很好。可能是其他VBA的一个限制,不过,它现在工作得很好! Function appXL As Object Set appXL = GetObject(, "Ex,vba,excel,macros,Vba,Excel,Macros,h你写的东西,因为我把它复制到Excel的VBA(显然是删除了appXL),它工作得很好。可能是其他VBA的一个限制,不过,它现在工作得很好! Function appXL As Object Set appXL = GetObject(, "Excel.Application") End Function Sub FeeBrdVerifier On Error Resume Next With InitSession Dim iComm As Curr
Function appXL As Object
Set appXL = GetObject(, "Excel.Application")
End Function
Sub FeeBrdVerifier
On Error Resume Next
With InitSession
Dim iComm As Currency ' Compare this with Excel's data
Dim sComm As String ' Needed string to allow app to stop at end of report
Dim xL As Currency ' Compare this with Host's data
Dim Counter As Byte ' Counter for the loop (need to do a new page)
Dim r As Byte ' Row # on the page
Dim Page As Byte
Page = 1
Debug.Print "Page # " & Page & vbNewLine & "========="
Counter = 0 ' 19 unique lines in transaction board per page
appXL.Workbooks("2016 FEE BOARD.xlsx").Activate
appXL.Range("J2").Select 'Starting point of the transaction amounts
r = 3
Do
Counter = Counter + 1
.Copy 69, r, 78, r ' This copies text from host app, consider it a 'cell'
sComm = Clipboard
iComm = CCur(sComm)
xL = appXL.ActiveCell.Value
appXL.ActiveCell.Offset("1", "0").Select
Debug.Print "# [" & Format(Counter,"00") & "].. sComm = [" & sComm & "] ... Excel Value = [" & xL & "]"
If iComm <> xL Then
.SetSelection 0, r, 80, r 'Highlights the row in host app that doesnt match
' appXL. '<<<< where I need assistance, insert line and shift down
MsgBox "Did not match..."
.ClearSelection 'Get rid of highlight after msgbox cleared
End If
r = r + 1 ' This allows the loop to copy the next line
If Counter = 19 Then
Page = Page + 1
Counter = 0
.Output E ' E is a function I use for the Return Key
Sleep 250 ' Waiting for next page to load
r = 3 ' On a new page now, go back to the top
Debug.Print vbNewLine & "Page # " & Page & vbNewLine & "========="
End If
Loop Until sComm = "" ' Reached last transaction
End With
End Sub
.SetSelection 0, r, 80, r
appXL.ActiveSheet.Range(appXL.cells(appXL.activecell.Row,1),appXL.cells(appXL.activecell.Row,11)).Insert Shift:=xlDown
MsgBox "Did not match..." & " the current row number is : " & appXL.ActiveCell.Row()
'Then move to next row to continue the loop
appXL.ActiveCell.Offset(1)
Sub FeeBrdVerifier()
On Error Resume Next
With InitSession
Dim iComm As Currency ' Compare this with Excel's data
Dim sComm As String ' Needed string to allow app to stop at end of report
Dim xL As Currency ' Compare this with Host's data
Dim Counter As Byte ' Counter for the loop (need to do a new page)
Dim r As Byte ' Row # on the page
Dim Page As Byte
Page = 1
Debug.Print "Page # " & Page & vbNewLine & "========="
Counter = 0 ' 19 unique lines in transaction board per page
'Get a reference to the ActiveSheet
Dim sheet As Object
Set sheet = appXL.Workbooks("2016 FEE BOARD.xlsx").ActiveSheet
r = 3
Dim currentRow As Long
currentRow = 2 'Starting point of the transaction amounts in Column J (ordinal is 10)
Do
Counter = Counter + 1
.Copy 69, r, 78, r ' This copies text from host app, consider it a 'cell'
sComm = Clipboard
iComm = CCur(sComm)
xL = sheet.Cells(currentRow, 10).Value
currentRow = currentRow + 1
Debug.Print "# [" & Format(Counter, "00") & "].. sComm = [" & sComm & "] ... Excel Value = [" & xL & "]"
If iComm <> xL Then
.SetSelection 0, r, 80, r 'Highlights the row in host app that doesnt match
sheet.Range(sheet.Cells(currentRow, 1), sheet.Cells(currentRow, 11)).Insert
MsgBox "Did not match..."
.ClearSelection 'Get rid of highlight after msgbox cleared
End If
r = r + 1 ' This allows the loop to copy the next line
If Counter = 19 Then
Page = Page + 1
Counter = 0
.Output E ' E is a function I use for the Return Key
Sleep 250 ' Waiting for next page to load
r = 3 ' On a new page now, go back to the top
Debug.Print vbNewLine & "Page # " & Page & vbNewLine & "========="
End If
Loop Until sComm = vbNullString ' Reached last transaction
End With
End Sub