我正在编写一个脚本,该脚本使用 VBA 循环遍历我的文档中嵌入的 excel 工作表。我激活它们,进行一些修改,然后继续下一个。之后,我希望再次停用最后一张工作表,并且希望光标返回到文档的开头。
到目前为止,我有以下代码:
Private Sub DeactivateOleObject(ByRef oOleFormat As OLEFormat)
On Error Resume Next
oOleFormat.ActivateAs "This.Class.Does.Not.Exist"
End Sub
Sub AutoOpen()
Dim lNumShapes As Long
Dim lShapeCnt As Long
Dim xlApp As Object
Dim wrdActDoc As Document
Set wrdActDoc = ActiveDocument
For lShapeCnt = 1 To wrdActDoc.InlineShapes.Count
If wrdActDoc.InlineShapes(lShapeCnt).Type = wdInlineShapeEmbeddedOLEObject Then
Dim oOleFormat As OLEFormat
Set oOleFormat = wrdActDoc.InlineShapes(lShapeCnt).OLEFormat
oOleFormat.Activate
DeactivateOleObject oOleFormat
End If
Next lShapeCnt
End Sub
我从Gary McGill那里借来了停用代码。但是,这种停用方法会破坏 Word 2007 中的功能区。
我可以想象重新激活主文档而不是停用 OLEObject 会更好,但添加wrdActDoc.Activate
似乎并没有这样做。
是否可以在不破坏功能区的情况下停用 Excel 工作表?