设定使用范围偏移的范围

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

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)? 

 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 

尝试这个

 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 

请注意,您可以运行这个任意次数,并且会简单地覆盖现有的已命名variables“workRange”,没有任何问题。

要将其构build为一系列不连续的范围,只需使用上面的代码,但可以使用逗号将附加范围追加到string中:

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