复制工作簿名称,然后用vba激活带有被复制名称的工作簿

我有WName = ThisWorkbook.Name ,然后我想设置Windows("WName").Activate在我的代码中的另一个点Windows("WName").Activate ,但不工作。

我知道这可能是没有道理的,但它与所有正在发生的sutf有关

下面是一个小testing子(我不使用这只是试图让它的工作)

谢谢

  Sub test() 'Copy Active Workbook Name WName = ThisWorkbook.Name 'Activate a different Workbook Windows("MyWorkbookAAA").Activate 'Activate Original workbook using WName Windows("WName").Activate 'Have also tried Windows(WName).Activate range("D2:D25").Select Selection.Copy Windows("MyWorkbookBBB").Activate range("C22").Select ActiveSheet.Paste End Sub 

试试这个代码:

避免在代码中使用select/激活。 参考这个链接

  ThisWorkbook.ActiveSheet.Range("D2:D25").Copy Workbooks("MyWorkbookBBB").ActiveSheet.Range("C22") 

在这里输入图像说明

如果要通过保持对string值WName的引用来保持相似的语法。

 Workbooks(WName).Activate 

这激活了该工作簿。

也可以做

 ThisWorkbook.Activate 

如果这是运行你的代码的工作簿。

(有更简单的方法来做特定的操作,你只需要做一件事就像复制一样,但这就解释了如何做你正在做的事情)