在macros或VBA中的dynamic工作簿和工作表名称

我有这样的代码:(目前正在使用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”中的信息从单元格input到macros中,以便可以根据需要更改并继续工作?

我的意思是有2个单元格,可以在一个表格中更改,可以通过下拉或手动填写当前工作簿表单“表单3”。 单元格:J1将等于一个文件名(Workbook2.xls),J2将等于一个表名(运行1)。

用户可以在需要时更改文件名和工作表名称,然后点击button来处理复制和粘贴。

我希望代码从单元中获取信息并将其放入代码中,而不是对工作簿和工作表的文件名进行“硬”编码。

我希望这更有意义

感谢您的任何帮助。

〜DA

—– UPDATE —-

我已经试过这个代码,但它不断崩溃的第一个设置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 

——更新——-

我得到它使用你所有的例子,并添加范围后的值。

 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