2

作業中の Excel プロジェクトでいくつかのグローバル変数を割り当てるために、別のモジュールにサブルーチンを作成しました。シートを変数に割り当てていますが、9 つのシート/変数がありますが、ランタイム 13 では 1 つのエラーしかありません。ローカル ウィンドウを確認すると、割り当てられたタイプが「Variant/Object/Sheet#」ではなく「Worksheets」であることがわかります。残りはそうします。ここにいくつかのコードがあります:

Public Cover, Notes, HWIO, IntChn, FbChn, _ 
 DigFb, AnaFb, RemAlm, OGoL As Worksheets

Public Sub AssignVars()
 Set Cover = Sheets("1. Cover")
 Set Notes = Sheets("2. Notes")
 Set HWIO = Sheets("3. HW Input-Output")
 Set IntChn = Sheets("4. Internal Channels")
 Set FbChn = Sheets("5. Funct Block Channels")
 Set DigFb = Sheets("6. Digital Funct Blocks")
 Set AnaFb = Sheets("7. Analog Funct Blocks")
 Set OGoL = Sheets("OGOnline")
 Set RemAlm = Sheets("8. Remote Alarming")
End Sub

エラーが発生するSet OGoL = Sheets("OGOnline")

Locals を見ると、OGoL を除くすべての変数にシート オブジェクトが割り当てられていることがわかります。OGoLには「ワークシート」があります。じっと見つめているかもしれませんが、タイプの不一致が発生する理由がわかりません。シートは名前どおりに存在します。

4

1 に答える 1

5

これは、Worksheets変数にWorksheetを割り当てているために発生しています。

前の 7 つの変数の初期化でこれが発生しない理由は、これらの変数をバリアント型として宣言したためです。これらの変数を Worksheet 型として宣言するには、次のように指定する必要があります。

Public Cover As Worksheet, Notes As Worksheet, HWIO As Worksheet, _
IntChn As Worksheet, FbChn As Worksheet, DigFb As Worksheet, _
AnaFb As Worksheet, RemAlm As Worksheet, OGoL As Worksheet
于 2013-01-29T18:41:43.793 に答える