Excel 从使用的范围偏移设置范围

Excel 从使用的范围偏移设置范围,excel,vba,range,cells,Excel,Vba,Range,Cells,我想建立一个范围做工作。我能够返回上次使用的单元格的行和列索引,但如何将其包含在命名范围内 numRows = sht.Cells(Rows.Count, 2).End(xlUp).Row numColumns = sht.Cells(1, Columns.Count).End(xlToLeft).Column Set endRange = sht.Cells(numRows, numColumns) Set workRange = sht.Range("B1", Cells(numRows

我想建立一个范围做工作。我能够返回上次使用的单元格的行和列索引,但如何将其包含在命名范围内

numRows = sht.Cells(Rows.Count, 2).End(xlUp).Row
numColumns = sht.Cells(1, Columns.Count).End(xlToLeft).Column

Set endRange = sht.Cells(numRows, numColumns)

Set workRange = sht.Range("B1", Cells(numRows, numColumns)?
试试这个

Set workRange = sht.Range("B1", Cells(numRows, numColumns))
ActiveWorkbook.Names.Add Name:="myName", RefersToR1C1:=workRange.Address
这应该起作用:

With Sheets("Sheet1")
        Set rng = .Range("B1:" & .Cells(numRows, numColumns).Address)
        ThisWorkbook.Names.Add Name:="workRange", RefersTo:=rng
End With
请注意,您可以多次运行此命令,它将简单地覆盖现有命名变量“workRange”,而不会出现任何问题

要将其构建为一系列非连续的范围,只需使用上面的命令,但将附加的范围用逗号附加到字符串上,如下所示:

Set rng=.Range("B1:C2,E4:F6,G2:" & Cells(numRows,numColumns).Address)
Set rng=.Range("B1:C2,E4:F6,G2:" & Cells(numRows,numColumns).Address)