Вам действительно не нужно l oop, вы можете использовать функцию сопоставления, если ваш лист гарантированно содержит запись «переменная»:
Sub TretourTdepart()
Dim LastRow As Long
Dim VariRow As Long
Dim sh As Worksheet
Dim rng As Range
Set sh = Sheets("data_(6)") 'Define sheet to copy from
LastRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row 'Find last row to copy from
VariRow = Application.WorksheetFunction.Match("variable", sh.Range("A:A"), 0)
Set rng = sh.Range(Cells(VariRow, 1), Cells(LastRow, 3))
End Sub
Если запись «переменная» не гарантируется, что вы там, тогда вы можете обернуть это проверкой if
:
edit Я вижу в комментарии, что ваша «переменная» на самом деле является строкой, поэтому установите это как фактическое переменная MyVariable
Sub TretourTdepart()
Dim LastRow As Long
Dim VariRow As Long
Dim sh As Worksheet
Dim rng As Range
Dim MyVariable As String: MyVariable = "ElectricityMeter"
Set sh = Sheets("data_(6)") 'Define sheet to copy from
LastRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row
If Application.WorksheetFunction.CountIf(sh.Range("A:A"), MyVariable) > 0 Then
VariRow = Application.WorksheetFunction.Match(MyVariable, sh.Range("A:A"), 0)
Set rng = sh.Range(Cells(VariRow, 1), Cells(LastRow, 3))
End If
End Sub