我有一张带有 marco 的表格(来自 excel vba):
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
...
End Sub
它可以正常工作。
但是在我将工作表复制到新工作表后,新工作表将丢失宏。
所以我尝试编写双击的工作表事件,并编写一个宏来复制工作表和事件。
Sub CopySheetWithEvents()
oSheets = ThisComponent.Sheets
oSheet = ThisComponent.CurrentController.ActiveSheet
sName = oSheet.Name
sNewName = oSheets.Count + 1
oSheets.CopyByName(sName, sNewName, oSheets.Count + 1)
oNewSheet = oSheets(oSheets.Count - 1)
aSheetEvents = oSheet.Events
sEventNames = aSheetEvents.ElementNames
aNewSheetEvents = oNewSheet.Events
For i = 0 To ubound(aSheetEvents.ElementNames)
aEvent = aSheetEvents.getbyname(sEventNames(i))
aNewSheetEvents.ReplaceByName(sEventNames(i), aEvent)
Next i
End Sub
没关系,但是工作表事件没有我的宏需要的“取消”参数。
如何使用 vba 复制工作表?