Microsoft VBAでプログラミングしています。最初に、マクロの助けを借りてQueryTableを生成する必要があり(そのためのコードがあります)、その後マクロの助けを借りてQueryTableのデータを使用する数式を適用する必要があります。私が直面している問題は、QueryTableが、コードが存在するSubが機能し終わった後にのみ表示されることです。これは、式を生成するコードがないため、式を生成するコードを含めることができないことを意味します。
今のアイデアは、他のモジュールを実行するモジュールを書くことです:
Sub moduleController()
Run "Module1"
Run "Module2"
End Sub
これはエラーを与えます:
実行時エラー1004-マクロ「マクロ名」を実行できません。このブックでマクロが使用できないか、すべてのマクロが無効になっている可能性があります。
解決策は何ですか? QueryTableの読み込みの問題に対する別の解決策があるかもしれません。
問題のマクロが同じブックにあり、名前が存在することを確認する限り、モジュールではなく名前で他のモジュールからそれらのマクロを呼び出すことができます。
したがって、Module1に2つのマクロMacro1とMacro2があり、Module2にMacro3とMacro 4がある場合、別のマクロではそれらすべてを呼び出すことができます。
Sub MasterMacro()
Call Macro1
Call Macro2
Call Macro3
Call Macro4
End Sub
「Module1」は、「moduleController」を含む同じブックの一部ですか?
そうでない場合は、Application.Run someWorkbook.xlsm!methodOfModule
を使用して「Module1」のパブリックメソッドを呼び出すことができます。
Artisoのおかげで新しいことを学びました。プロパティボックスで各モジュールに名前を付けました。これらの名前は、モジュールで宣言したものでもありました。 2番目のモジュールを呼び出そうとすると、エラーが発生し続けました:コンパイルエラー:モジュールではなく変数またはプロシージャが必要です
上記のArtisoの同じ名前がないというコメントを読んだ後、2番目のモジュールの名前を変更し、最初のモジュールから呼び出して、問題を解決しました。面白いもの!情報Artisoをありがとう!
私の経験が不明な場合:
モジュール名:AllFSGroupsCY Public Sub AllFSGroupsCY()
モジュール名:AllFSGroupsPY Public Sub AllFSGroupsPY()
AllFSGroupsCY()から
Public Sub FSGroupsCY()
AllFSGroupsPY 'will error each time until the properties name is changed
End Sub