Я столкнулся с проблемой, и я не могу понять это. Вопросы с одной и той же ошибкой, похоже, имеют другую проблему.
У меня есть следующий код:
Option Explicit
Sub Bank_match()
Dim x As Range, y As Range
Dim FirstSheet As Worksheet, SecondSheet As Worksheet
Dim Txn_count_1 As Integer, Txn_count_2 As Integer
Dim i As Integer
Set FirstSheet = Worksheets("Sheet1")
Set SecondSheet = Worksheets("Sheet2")
With FirstSheet
Set x = Cells.Find(What:="Description", After:=Cells(1, 1), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Txn_count_1 = Range(x.offset(1, 0), x.offset(1, 0).End(xlDown)).Count
End With
With SecondSheet
Set y = Cells.Find(What:="Description", After:=Cells(1, 1), LookIn:=xlValues _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Txn_count_2 = Range(y.offset(1, 0), y.offset(1, 0).End(xlDown)).Count
End With
For i = 1 To Txn_count_1
If FirstSheet.Range(x).offset(i, 1).Value = SecondSheet.Range(y).offset(i, 2).Value Or _
FirstSheet.Range(x).offset(i, 2).Value = SecondSheet.Range(y).offset(i, 1).Value Then
FirstSheet.Range(x.offset(i, 1)).EntireRow.Interior.ColorIndex = 6
SecondSheet.Range(y.offset(i, 1)).EntireRow.Interior.ColorIndex = 6
End If
Next i
End Sub
По сути, я пытаюсь перебрать банковские выписки и выделить строки транзакций которые появляются на обоих листах. Моя проблема в том, что я получаю сообщение об ошибке в строке «Оператор If».
Сначала я подумал, что это могут быть ссылки на мои листы, но если я заменю «FirstSheet» и «SecondSheet» на Worksheets («Sheet1») ) и Worksheets («Sheet2») соответственно, я получаю «Ошибка приложения или объекта» в той же строке. Я получаю ту же ошибку, если также квалифицирую диапазон с помощью «ThisWorkbook».
Есть мысли?