繁体   English   中英

Excel VBA-使用范围变量来动态设置一组单元格的范围

[英]Excel VBA - Using range variable to dynamically set range a set # of cells

目前,我的代码在特定工作表的一列中查找单元格中的某个值。 如果在某个单元格中找到该值,它将使用该单元格作为该子例程其余部分的定位点。 这是相关的代码。

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范围,然后BackupTable执行.Offset(LastRow, 0)

我不确定如何成功地操纵它来做到这一点。 如果需要澄清,请询问。

根据您的要求:

如果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

但您可能想向实际目标添加更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM