VBA EXCEL:根据部分名称从其他(打开)工作簿(XML)获取值,并将它们复制到主工作簿中

时间:2014-12-03 20:36:10

标签: excel vba excel-vba

我的问题是:

我有2本工作簿:

主工作簿这是我想要粘贴的值。

其他工作簿经常更改其名称,但始终以" PR14"它是一个XML文件扩展名(我不知道这些是否重要)

所以代码需要做的是识别工作簿名称" PR14"然后将值(例如,单元格A1:A3)复制到单元格A1中的主工作簿。

我得到的代码是:

Sub Recognize()
    For Each wb In Workbooks
        If Left(wb.Name, 4) = "PR14" Then wb.Activate
    Next
End Sub

似乎有用,或者至少它识别正确的工作簿。但是我怎么离开这里?

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上 - 正如我在评论中所说,最简单的方法可能就是录制一个复制你想要的数据的宏,并将你的逻辑放在它上面以选择正确的工作簿。 / p>

另一种方式(首选)是设置工作簿变量,以便您可以更好地控制自己正在做的事情。

这看起来像这样:

Sub CopyFrom()

Dim wb As Workbook
Dim ThisBook As Workbook
Dim PR14Book As Workbook

    Set ThisBook = ThisWorkbook

    For Each wb In Workbooks
        If Left(wb.Name, 4) = "PR14" Then Set PR14Book = wb
    Next

    ' Whatever kind of stuff you want to do... Just an example:
    ThisBook.Sheets("Sheet1").Range("A1").Value = PR14Book.Sheets("Sheet1").Range("A1:A3").Value
End Sub

希望这有助于让你走上正确的道路,祝你好运!