Я пишу небольшой макрос с некоторыми циклами, прекрасно работает, но сейчас пытаюсь очистить и избегать использования .Select и .Activate, но при этом я запускаю в «Ошибка 1004»
Получил идеальную работу, используя. Выберите лист для поиска данных, а затем. Выберите обратно на лист, куда его нужно вставить.
Вот код:
Sub Sæt_ind_i_eksporten()
Dim dagensliste As Worksheet
Dim trailerliste As Worksheet
Dim trailernummer As String
Dim finalrow As Integer
Dim i As Integer
Dim t As Integer
Dim targetcount As Integer
Set trailerliste = ThisWorkbook.Sheets("Data ud (2)")
Set dagensliste = ThisWorkbook.ActiveSheet
Application.ScreenUpdating = False
targetcount = trailerliste.Cells(30, 1).End(xlDown).Row
finalrow = Cells(Rows.Count, 1).End(xlUp).Row
For t = 30 To targetcount
trailernummer = trailerliste.Cells(t, 3).Value
For i = 4 To finalrow
If Cells(i, 3) = trailernummer Then
' Here is where it fails - If I select the sheet manually, it moves on
trailerliste.Range(Cells(t, 1), Cells(t, 13)).Copy
' And here it fails again (logic i know!) select manually again and it moves on.
dagensliste.Range(Cells(i, 1), Cells(i, 13)).PasteSpecial xlPasteValues
End If
Next i
Next t
Application.GoTo reportsheet.Range(A1)
MsgBox ("Søgning gennemført")
Application.ScreenUpdating = True
End Sub
Если я заменим trailerliste.Range(Cells(t, 1), Cells(t, 13)).Copy
на trailerliste.select
и Range(Cells(t, 1), Cells(t, 13)).Copy
в отдельных строках, и то же самое для dagensliste.Select
, тогда код прекрасно работает.
Я знаю, что это просто, но я попытался прочитать все, что смог найти на форуме, но безуспешно.
Надеюсь, мне можно помочь:)
С уважением