2017-02-14 189 views
1

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

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

回答

1
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 
+0

完美。就是这样。谢谢! – Jotter

+0

不客气 – user3598756

1

试试这个

Set workRange = sht.Range("B1", Cells(numRows, numColumns)) 
ActiveWorkbook.Names.Add Name:="myName", RefersToR1C1:=workRange.Address 
1

这应该工作:

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) 
相关问题