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

我的问题是:

我有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 

这似乎工作,或至less它认识到正确的工作簿。 但我怎么从这里走?

你在正确的轨道上 – 正如我在我的评论中所说的,最简单的方法可能就是logging一个复制所需数据的macros,并将逻辑置于其上以select正确的工作簿。

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

这看起来像这样:

 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 

希望能帮助你走上正确的道路,祝你好运!