我想复制工作表并将其直接放在另一张工作表之后。但是当涉及隐藏的表单时我遇到了麻烦。Excel VBA WorkSheet.Copy Excel 2013后
使用Excel 2013我打开一个新的工作簿。 在“Sheet1”之后添加一张纸。将它重命名为“HiddenSheet2” 在“HiddenSheet2”之后添加一张表。重命名新的工作表 “表Sheet 3” 所以我有 “工作表Sheet1” - “HiddenSheet1” - “表Sheet 3” 然后隐藏 “HiddenSheet1”
下运行这个VBA代码:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
End Sub
插页得到安置后, “HiddenSheet2”而不是“Sheet1”之后。 我发现复制的工作表成为活动工作表。
Get Handle on last worksheet copied by Worksheet.Copy
VBA Copy Sheet to End of Workbook (with Hidden Worksheets)
但我的问题是我需要的纸张保持在一个特定的顺序。
感谢
编辑:
Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
ThisWorkbook.ActiveSheet.Move After:=Sheets(wst.Index)
End Sub
这不 “工作表Sheet1” 要么后直接拿到新的工作表。
为什么不使用后'wst.copy:= wst'? – glh 2013-05-02 20:37:50
@glh说了什么。你已经有'wst'作为Worksheet变量。只需在'After'参数中使用它:) – 2013-05-03 00:44:06
'wst.copy after:= wst'和'wst.copy after:= Sheets(“Sheet1”)'产生相同的结果。我的新工作表位于隐藏工作表之后,而不是直接位于“工作表1”之后 – Jonathan 2013-05-03 13:22:02