1

ある Excel シートから値を取得し、それらを別のシートの同じ場所に配置するコードがあります。これには ComboBox インデックスと Cell 値が含まれます。両方のスプレッドシートは同じ構造と同じフォーム要素を持っていますが、一方のシートはヘッダーとして異なる画像を持っています。

エラーが出ている行は次のとおりです。

    Workbooks(Template).Sheets(Sheet1).ComboBox12.ListIndex = Workbooks(OriginalFile).Sheets(Sheet1).ComboBox12.ListIndex

TemplateOrignalFileはファイル名、Sheet1はワークシートのタブ名で、両方のファイルにComboBox12" " として存在します。ComboBox12

ここで問題です。最初に 2 つのファイルを開いてから一連のコマンドを実行するスクリプトを実行すると、次のエラーが発生します。

    "Run-time error '438' Object doesn't support this property of method". 

しかし、両方のファイルが既に開いているときにコード行を実行すると、問題なく実行されます。

さらに興味深いことに、97-2003 .xls ファイルでコードを実行すると、完全に機能します。また、テンプレート ファイルのバージョンに違いはないようです。元のファイルが .xlsm バージョンの場合にのみ、コード エラーが発生します。(両方とも VBA ウィンドウから開いた後でも実行できます)

それが動作の変化を引き起こしたファイル バージョンであることを証明するために、コードが正常に動作する .xls ファイルを取得して .xlsm として保存し、新しいファイル名でコードを再実行したところ、エラーが発生しました。

何か案は?

Excel で .xlsm ファイルを開いた後に vba マクロが見つからないということはありますか?

助けていただければ幸いです!!!

4

1 に答える 1