2011-07-25 13 views
2

私はexternal.xlsを開き、1つのブック内のマクロを別のブックに変更できますか?

Public Sub sheet2test() 
    Workbooks.Open Filename:="external.xls" 
    Windows("external.xls").Activate 
    Sheets("Sheet3").Activate 
    Range("A5").Value = 5 

End Sub 

このコードを実行するように1つのワークシート(internal.xls)でマクロを定義し、5の値はinternal.xlsでなく配置されているが、その用紙3を活性化しますexternal.xls。変更が他のワークシートに確実に反映されるようにするにはどうすればよいですか?

答えて

5

答えははいです。

あなたは1つのことを忘れました。 external.xlsへの変更を行うには、次のコードを試してみてください。

Public Sub sheet2test() 
Workbooks.Open Filename:="external.xls" 
Workbooks("external.xls").Activate 
ActiveWorkbook.Sheets("Sheet3").Activate 
Range("A5").Value = 5 
End Sub 

EDIT:

イム申し訳ありません私が行った変更を指していませんでした。

私はちょうどこれは、現在アクティブなブック(external.xls)の変化としないマクロ (internal.xls)を含有して実行ブックを作るために添加されなければならない。4. 線に

+1

答えは、「1つ見逃したこと」が何であるかを明確にする必要があります。私の意見では、技術的には正しいものの、全体的には貧弱な答えで​​す。 – Juliusz

4

ActiveWorkbook.を添加これをすべて有効にする必要はありません。それがするのは、画面の点滅と処理の遅れが原因です。

公開サブsheet2test() Workbooks.Openファイル名:。。。= "external.xls" ワークブック( "external.xls")シート( "シート3")範囲( "A5")値= 5 終了サブ

3

私が使用します。

dim wb as workbook, sh as worksheet 
set wb = workbooks.open("thatWorkbook.xls") 
'Now you have a proper reference to the newly opened workbook ! 
set sh = wb.sheets("sheet3") 
sh.range("a1") = "hello world" 

を他の人が述べたように、様々なActivate命令はここに便利よりも不便です。

関連する問題