从使用的范围偏移设置范围
Set range from used range offset
我想建立一个范围来进行工作。我可以 return 最后使用的单元格的行和列索引,但如何将其包含在命名范围内?
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 sht
numRows = .Cells(.Rows.Count, 2).End(xlUp).Row
numColumns = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set endRange = .Cells(numRows, numColumns)
Set workRange = .Range("B1", endRange)
.Parent.Names.Add Name:="myName", RefersToR1C1:=workRange.Address
End With
这应该有效:
With Sheets("Sheet1")
Set rng = .Range("B1:" & .Cells(numRows, numColumns).Address)
ThisWorkbook.Names.Add Name:="workRange", RefersTo:=rng
End With
请注意,您可以 运行 多次,它会简单地覆盖现有的命名变量 "workRange" 而不会出现任何问题。
要将其构建为一系列 non-contiguous 范围,您只需使用上面的内容,但将附加范围附加到带有逗号的字符串,如下所示:
Set rng=.Range("B1:C2,E4:F6,G2:" & Cells(numRows,numColumns).Address)
我想建立一个范围来进行工作。我可以 return 最后使用的单元格的行和列索引,但如何将其包含在命名范围内?
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 sht
numRows = .Cells(.Rows.Count, 2).End(xlUp).Row
numColumns = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set endRange = .Cells(numRows, numColumns)
Set workRange = .Range("B1", endRange)
.Parent.Names.Add Name:="myName", RefersToR1C1:=workRange.Address
End With
这应该有效:
With Sheets("Sheet1")
Set rng = .Range("B1:" & .Cells(numRows, numColumns).Address)
ThisWorkbook.Names.Add Name:="workRange", RefersTo:=rng
End With
请注意,您可以 运行 多次,它会简单地覆盖现有的命名变量 "workRange" 而不会出现任何问题。
要将其构建为一系列 non-contiguous 范围,您只需使用上面的内容,但将附加范围附加到带有逗号的字符串,如下所示:
Set rng=.Range("B1:C2,E4:F6,G2:" & Cells(numRows,numColumns).Address)