Я пытаюсь получить колонку с внешнего/закрытого листа Excel и сравнить ее с колонкой с открытого листа.Excel/VBA - для каждого цикла и StringComp
Проблема заключается в том, что с некоторыми из моих входов, результат является ложным, так как сравнение не является правильным, и поэтому программа говорит мне, что мой массив нашел() не является достаточно большим для всех данных
Мой код:
Private Sub CommandButton1_Click()
Dim varData As Variant
Dim objExcel As New Excel.Application
Dim objSheet As Object
Dim extRange As Variant
Dim intRange As Variant
Set intRange = ThisWorkbook.Sheets(1).Range("A4:A11")
Dim loopStr As Variant
Dim loopStr2 As Variant
Dim found() As Variant
Dim loopInt As Integer
Dim endStr As Variant
loopInt = 1
varData = Application.GetOpenFilename("Excel (*.xlsx), *.xlsx")
If varData <> False Then
objExcel.Workbooks.Open varDatei
Set objSheets = objExcel.Sheets(1)
objSheets.Activate
LastRow = objSheets.Cells(Rows.Count, 3).End(xlUp).Row
Set extRange = objSheets.Range("B3:B" & LastRow)
ReDim found(1 To LastRow)
For Each loopStr In extRange
For Each loopStr2 In intRange
If StrComp(loopStr, loopStr2) = True Then
found(loopInt) = loopStr
loopInt = loopInt + 1
End If
Next loopStr2
Next loopStr
loopStr = ""
For Each loopStr In found
endStr = endStr + " " + loopStr
Next loopStr
Debug.Print endStr
Else
MsgBox "Error"
End If
End Sub
Можете ли вы подтвердить, что говорит сообщение об ошибке, и по какой строке кода он появляется? – Jordan
Вам нужно сбросить loopint, так как это будет увеличиваться, до петли loopstr2 –
Вы можете использовать ubound (found) вместо loopint. –