我有这个有效的代码:(当前使用 Excel 2003)
Sub test_copy1()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb1 = Workbooks("Workbook2.xls")
Set wb2 = ThisWorkbook
Set ws1 = wb1.Sheets("Run 1")
Set ws2 = wb2.Sheets("Sheet3")
ws2.Range("A1:h30") = ws1.Range("A177:H206").Value
End Sub
在当前工作簿“表 3”中 单元格 J1 = Workbook2.xls 单元格 J2 = 运行 1
如何将当前工作簿“表 3”中的信息从单元格输入到宏中,以便它可以根据需要进行更改并仍然有效?
我的意思是在工作表中有 2 个可以更改的单元格,可以通过下拉菜单或在当前工作簿工作表“工作表 3”上手动填写。 单元格:J1 等于文件名 (Workbook2.xls),J2 等于工作表名称 (Run 1)。
用户可以在需要时更改文件名和工作表名称,然后单击按钮来处理复制和粘贴。
我希望代码从单元格中获取信息并将其放入代码中,而不是“硬”编码工作簿和工作表的文件名。
我希望这更有意义
感谢您的帮助。
~DA
-----更新----
我已经尝试过这段代码,但它在第一个 Set Wb1= 上一直崩溃
Sub test_copy1()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb1 = Workbooks(ws2.Range("J1"))
Set wb2 = ThisWorkbook
Set ws1 = wb1.Sheets(ws2.Range("J2"))
Set ws2 = wb2.Sheets("Sheet3")
ws2.Range("A1:h30") = ws1.Range("A177:H206").Value
End Sub
------更新--------
我使用所有示例并在范围后添加 .Value 使其正常工作:)
Sub test_copy1()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb2 = ThisWorkbook
Set ws2 = wb2.Sheets("Sheet3")
Set wb1 = Workbooks(ws2.Range("J1").Value)
Set ws1 = wb1.Sheets(ws2.Range("J2").Value)
ws2.Range("A1:h30") = ws1.Range("A177:H206").Value
End Sub
谢谢你,谢谢你的帮助!!
最佳答案
试试这个:
Sub test_copy1()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb2 = ThisWorkbook
Set ws2 = wb2.Sheets("Sheet3")
Set wb1 = Workbooks(ws2.Range("J1").Value)
Set ws1 = wb1.Sheets(ws2.Range("J2").Value)
ws2.Range("A1:H30").Value = ws1.Range("A177:H206").Value
End Sub
关于vba - 宏或 VBA 中的动态工作簿和工作表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502808/