VBAのワークブックの正しいアドレスに関する質問があります。これはかなり新しいです。VBA:関数への引数としてワークシートを渡すときに正しいブックを呼び出す方法
これまで行ってきたことは次のとおりです。
CodeName "table10"のワークシートを作成するサブを作成しました。この機能
Text_To_Numbers(worksheet as worksheet)
ワークシートの引数を期待:
は、その後、私は言ったシートの内容を操作する機能を定義しました。ここに私の問題であり、今Call Text_To_Numbers(table10)
:私は、次の行を使用して別のサブからの関数を呼び出すだけ開いているブックは、私は私の機能と操作したいものです
上記作品完璧とき。ただし、複数の開いているブックがある場合、この関数は別のブックを操作しようとし、エラーが発生します。
使用するワークブックを指定する方法が必要であることは確かですが、見つけられません。つまり、別の複雑さがあります。私が操作したいワークブックの名前はマシンで生成されるため、常に別の名前が付けられます。つまり、同じファイル名への明示的な参照を何度も使用することはオプションではありません。
誰でも私がこれを解決するのに役立つでしょうか?
'ThisWorkbook.table10'や' ThisWorkbook.Worksheets( "Table10") 'のようにマクロが動作しているブックのために' ThisWorkbook'を使用するか、 'Application.Workbooks(" WorkBookName.xlsm ")を使用してください。 ")"を他のワークブックに使用します。 –
また、ワークブック変数「Dim wb as Workbook」を宣言し、それを使用することもできます: 'Set wb = Workbooks.Open(" Somepath \ Somefile.xlsx ")'を開いてから 'wb.Worksheets(1)'そのワークブック内の最初のシートを参照します。 –
他のワークブックプロジェクトに参照が設定されていない限り、 'table10'は、コードネームであれば、常にコード付きのブック内のシートを参照します。 – Rory