1
1つのExcelシートを別のExcelシートにコピーするためのExcel用マクロを作成しています。VBAで名前をハードコーディングせずにExcelワークシートを参照するにはどうすればよいですか?
Function CopyFile()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set Wb1 = ActiveWorkbook
Set ws1 = Wb1.Worksheets("Task")
Set Wb2 = Workbooks.Open("D:\Outlook\dest.xlsx")
ws1.Copy Wb2.Worksheets(1)
Wb2.Save
Wb2.Close
Wb1.Activate
End Function
しかし、私はシート名設定WS1 = Wb1.Worksheets( "タスク")を取得するには、ハードコードされた文字列を使用したくない:
これが働いています。代わりに、関数の引数を使用します。
コードの一部が動作しません後:それは私の作品
Function CopyFile(name As String)
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set Wb1 = ActiveWorkbook
Set ws1 = Wb1.Worksheets(name)
Set Wb2 = Workbooks.Open("D:\Outlook\dest.xlsx")
ws1.Copy Wb2.Worksheets(1)
Wb2.Save
Wb2.Close
Wb1.Activate
End Function
何が問題なのですか?間違いはありますか?シートが存在しない場合を除いて、あなたのコードは私にとってうまく見えます。 – markblandford