vba - 宏或 VBA 中的动态工作簿和工作表名称

标签 vba excel

我有这个有效的代码:(当前使用 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/

相关文章:

excel - 如何在VBA中根据两个变量获取范围

vba - Excel VBA If语句错误触发

vba - 在 Excel 中打印速度更快

用于增加月份的 Excel 公式

python - 尝试将文本文件内容导入python中XML文件中的新标签时卡住了

excel - 如何读取含有汉字的.txt文件?

excel - 停止宏以允许编辑工作簿

Excel VBA Worksheetfunction.Match 不适用于日期

vba - 用于删除电话号码前导 1(如果存在)的 Excel 公式

r - openxlsx 中的 addStyle 函数不会用正确的颜色填充 excel 电子表格中的单元格