2017-02-14 22 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) 
関連する問題