1
我正在編寫一個腳本,通過VBA在我的文檔中嵌入Excel表單。我激活它們,做一些修改並繼續下一個。之後,我希望最後一張紙被再次停用,我希望光標返回到文檔的開頭。使用VBA取消激活OLEObject在Word 2007中打破了功能區
我有下面的代碼至今:
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工作表而不破壞功能區?