0

名前付き範囲の値をバリアントの配列に割り当てようとしています。ほぼ割り当てコードのレベルでアプリケーションまたはオブジェクト定義のエラーが発生しますMaterial=ThisWorkbook.Names( "RMInStoreName")。RefersToRangeここからこの例を取得し、以前に使用したことがあります。

私はまだこのエラーが表示されている理由を理解しようとしています、私はアイデアが不足しているようです、誰でも私が正しい方向を指すのを手伝ってくれるでしょう本当に私をたくさん救うでしょうコードは以下にありますコードはここにあります

 Sub MonitorStore()
Dim ThreshHold As Variant, InStore As Variant, StatusReport As Variant
Dim Material As Variant    'is the name of the material
Status As Variant
'status is a variable which holds data on wether the user  has seen msg and 
'wants to     supress msg
'the ThreshHold is the minimum allowed in store below which messages are firerd
'InStore is the volume of materials currently in store
'and be told of another error after solving error one, report all at once


 Material = ThisWorkbook.Names("RMInStoreName").RefersToRange
ThreshHold = ThisWorkbook.Names("RMThreshHold").RefersToRange
InStore = ThisWorkbook.Names("RMInStore").RefersToRange
Status = ThisWorkbook.Names("RMStatus").RefersToRange

'other code.............
'dont expect error from unexecuted code
End Sub

助けてくれてありがとうスティーブン

4

2 に答える 2

0

RefersToRange は範囲オブジェクトを返します。その後の値は次のとおりです。

Material = ThisWorkbook.Names("RMInStoreName").RefersToRange.Value

または次を使用できます。

Material = Evaluate("RMInStoreName")

また:

Material = Evaluate(ThisWorkbook.Names("RMInStoreName").RefersTo).Value
于 2013-02-06T11:59:09.223 に答える
0

最も可能性の高い理由は、ワークブックで定義されているすべての名前付き範囲を持っていないことです。

[式] タブを使用して名前付き範囲を確認できます。

式 --> 名前管理

ここに画像の説明を入力

于 2013-01-18T18:39:08.290 に答える