gpt4 book ai didi

vba - Excel VBA WorkSheet.Excel 2013 之后的复制

转载 作者:行者123 更新时间:2023-12-04 22:08:07 27 4
gpt4 key购买 nike

我想复制一个工作表并将其直接放在另一张工作表之后。但是当涉及隐藏的表格时,我遇到了麻烦。

使用 Excel 2013 我打开一个新工作簿。
在“Sheet1”之后添加一个工作表。将其重命名为“HiddenSheet2”
在“HiddenSheet2”之后添加一个工作表。重命名新工作表“Sheet3”
所以我有“Sheet1” - “HiddenSheet1” - “Sheet3”
然后隐藏“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”之后直接获得新工作表。

最佳答案

可以添加现有代码

Sub test()
Dim ws1 AS Worksheet
Set wst = Sheets("Sheet1")
wst.Copy After:=Sheets(wst.Index)
ThisWorkbook.ActiveSheet.Move After:=Sheets(wst.Index)

If (ActiveSheet.Index - wst.Index - 1) <> 0 Then
Sheets(wst.Index + 1).Visible = True
ActiveSheet.Move After:=wst
Sheets(wst.Index + 2).Visible = False
End If

End Sub

关于vba - Excel VBA WorkSheet.Excel 2013 之后的复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com