5

すべてが 1 つの領域の範囲で正常に機能します。セル A1 と B1 を選択し、「foo」という名前を付けます。

?ThisWorkbook.Names.Item("foo").RefersTo
 =Tabelle1!$A$1:$B$1
?ThisWorkbook.Names.Item("foo").RefersToRange.Address
 $A$1:$B$1

ただし、2 つの領域の範囲は失敗します (Excel 2010): Ctrl キーを押しながらセル A2 と B2 をクリックし、「バー」という名前を付けます。

 ?ThisWorkbook.Names.Item("bar").RefersTo
  =Tabelle1!$A$2,Tabelle1!$B$2
 ?ThisWorkbook.Names.Item("bar").RefersToRange.Address
  -> Run-time error '1004'

「バー」名が参照する範囲を取得できないのはなぜですか?

どのシートに名前が付けられているかわからないため、使用しない 回避策はありますか?sheet.Range("bar")

4

2 に答える 2

1

Rangeではなくグローバルを試すことができますsheet.Range

? Range(ThisWorkbook.Names("bar").RefersTo).Address

ワークブック間の落とし穴の可能性を回避するためConvertFormulaに、ワークブック名​​を範囲に追加するために使用できます。

? ThisWorkbook.Names("bar").RefersTo
  =Sheet1!$A$2,Sheet1!$B$2

? Application.ConvertFormula(ThisWorkbook.Names("bar").RefersTo, xlA1, xlA1)
  =[Book1]Sheet1!$A$2,[Book1]Sheet1!$B$2

? Application.Range(Application.ConvertFormula(ThisWorkbook.Names("bar").RefersTo, xlA1, xlA1)).Address
  =$A$2,$B$2

于 2013-01-11T14:13:44.210 に答える