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

时间:2013-05-31 19:48:30

标签: excel vba

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

我知道这可能没有意义,但它与所有正在进行的sutf有关

下面是一个小测试子(我没有使用它只是试图让它工作)

由于

 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

2 个答案:

答案 0 :(得分:1)

如果你想通过保持对字符串值WName的引用来保持类似的语法。

Workbooks(WName).Activate 

这会激活该工作簿。

也可以做到

ThisWorkbook.Activate

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

(有更简单的方法来执行特定的操作,你只做一件事,比如复制,但这解释了如何做你想做的事情)

答案 1 :(得分:1)

试试这段代码:

避免在代码中使用Select / Activate。请参阅此link

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

enter image description here