2017-02-14 110 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) 
相關問題