Excel VBA – 使用范围variablesdynamic设置一组单元格的范围
我目前有我的代码在一个特定的工作表中的一列中查找单元格中的某个值。 如果它在单元格中find该值,则将该单元格用作子例程其余部分的锚点位置。 这是相关的代码。
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
是这个单元格]。
所以我需要它是从rngY
单元格开始复制DailyTable
。 例如,如果rngY
返回为C1,那么我需要将BackupTable
设置为范围C1:Q15,然后执行.Offset(LastRow, 0)
。
我不确定如何成功地操作这个来做到这一点。 如果您需要澄清,请询问。
从您的要求:
如果rngY返回C1,那么我需要将备份表设置为范围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
但是您可能需要为实际目标添加更多细节