С помощью следующего макроса я пытался найти в worksheet ("Sheet11")
определенный заголовок, скопировать строки под ним, используя loop (x = 0 to 10)
, найти тот же заголовок в другом worksheet ("Sheet22")
и вставить скопированный материал в точно такой же заголовок.
Sub FindCopyPasteV8()
Dim FindH1 As Range
Dim TestR1 As Range
Dim TestR2 As Range
Dim StartRow1 As Long
Dim StartColumn1 As Long
Dim StartRow2 As Long
Dim StartColumn2 As Long
Dim x As Long
With Sheets("Sheet11").Range("A:FF")
Set FindH1 = .Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)
End With
With Sheets("Sheet22").Range("A:FF")
Set TestR1 = .Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)
For x = 0 To 10
StartColumn1 = TestR1.Column
StartColumn2 = FindH1.Column
StartRow1 = TestR1.Row + x
StartRow2 = FindH1.Row + x
Set TestR1 = Sheets("Sheet22").Cells(StartRow1, StartColumn1)
Set TestR2 = Sheets("Sheet11").Cells(StartRow2, StartColumn2)
TestR2.Copy TestR1
Next x
End With
End Sub
Это не работает, и я не знаю почему. Я получаю сообщение об ошибке в строке StartColumn1 = TestR1.Column
Сообщение об ошибке: «объектная переменная ошибка 91 или переменная блока не установлена».
Я знаю, что тот же результат может быть достигнут при более простом программировании, но для моего предполагаемого использования он должен работать точно , как показано выше, с циклом и функцией Find.