2017-02-21 16 views
1

В настоящее время у меня есть мой код, смотрящий вниз по столбцу в конкретном листе для определенного значения в ячейке. Если он находит это значение в ячейке, он использует эту ячейку в качестве местоположения привязки для остальной части подпрограммы. Вот соответствующий код.Excel VBA - использование переменной диапазона для динамического набора диапазона набора ячеек

With DailyWS 
    Set DailyTable = .Range("C7:Q21") 
    Set Week = .Range("F4") 
End With 'DailyWS 

Set rngY = BackupWS.Range("B1:B10000").Find(Replace(Week.Value, " Week", ""), lookat:=xlPart) 

If rngY Is Nothing Then 
    Set rngY = BackupWS.Range("B1").Offset(LastRow, 0) 
End If 

With BackupWS 
    Set BackupTable = rngY.Offset(0, 2) 
End With 'BackupWS 

мне нужно взять информацию в DailyTable диапазоне и скопировать его в BackupTable диапазоне. Поскольку он в настоящее время закодирован, он копирует только одну ячейку, потому что rngY возвращает только одну ячейку [для других частей подпрограммы мне все еще нужна rngY, чтобы быть этой ячейкой].

Поэтому мне нужно скопировать DailyTable, начиная с ячейки rngY. Например, если rngY возвращается как C1, тогда мне нужно будет установить BackupTable в диапазон C1: Q15, затем выполнить .Offset(LastRow, 0).

Я не уверен, как успешно манипулировать этим, чтобы сделать это. Если вам нужно уточнение, пожалуйста, спросите.

ответ

2

из вашего запроса:

если rngY возвращается как C1, то я должен был бы установить BackupTable в диапазоне C1: Q15 затем выполнить .offset (LastRow, 0) к этому.

изменение:

If rngY Is Nothing Then 
    Set rngY = BackupWS.Range("B1").Offset(LastRow, 0) 
End If 

With BackupWS 
    Set BackupTable = rngY.Offset(0, 2) 
End With 'BackupWS 

к:

With BackupWS 
    Set rngY = .Range("B1:B10000").Find(Replace(Week.Value, " Week", ""), lookat:=xlPart) 

    If rngY Is Nothing Then Set rngY = .Range("B1").Offset(LastRow, 0) 

    Set BackupTable = .Range(rngY, .Range("Q15")).Offset(LastRow, 0) 
End With 'BackupWS 

, но вы можете добавить больше деталей к вашей фактической цели

+0

Отлично! Я смог внести необходимые корректировки в изменение, которое вы сделали, чтобы заставить его работать именно так, как я хотел. Благодаря! – BetaOp9

+0

Добро пожаловать – user3598756