![](/img/trans.png)
[英]Attempting to delete a page in Microsoft Word (VBA) that contains specific text in a textbox
[英]Textbox on a Drawing Canvas - Can't modify Textbox Text (Word VBA)
如果在繪圖畫布中,我很難通過VBA訪問文本框文本。
在其他地方搜索此+顯示我應該能夠使用“ TextFrame.TextRange”訪問文本,但是失敗,並且調試顯示不存在數據(我無法發布圖像,因為我的反饋少於10個)
請嘗試:-制作一個新的Word文檔,-添加一個繪圖畫布,並在其中添加一些虛擬文本的文本框-嘗試通過VBA訪問/修改它非常感謝=)
For Each shp In ActiveDocument.Shapes
If shp.Type = msoCanvas Then
For Each canvasitem In shp.CanvasItems
If canvasitem.Type = msoTextBox Then
' NONE OF THESE WORK - WHAT AM I MISSING?
'Debug.Print canvasitem.TextFrame.TextRange.Text
'Debug.Print canvasitem.TextFrame.TextRange.Characters.Text
'If canvasitem.TextFrame2.HasText = True Then _
' Debug.Print canvasitem.TextFrame2.TextRange
End If
Next
End If
Next
這似乎為我工作:
For Each shp In ActiveDocument.Shapes
If shp.Type = msoCanvas Then
For Each canvasitem In shp.CanvasItems
If canvasitem.Type = msoTextBox Then
Debug.Print canvasitem.TextFrame.TextRange.Text
End If
Next
End If
Next
我蠻橫地強迫工作。 它僅適用於繪圖畫布中的Word 2010文本框。 它不適用於“繪圖畫布”外部的TextBox。
解決方法=選擇文本框,然后通過“選擇”方法訪問文本框(不是很好的代碼,但是可以)。
MICROSOFT ..為什么您不能更好地文檔!或在發行前完成開發。
我希望這可以幫助其他人
For Each shp In ActiveDocument.Shapes
If shp.Type = msoCanvas Then
For Each canvasitem In shp.CanvasItems
If canvasitem.Type = msoTextBox Then
' Word 2003
' Debug.Print canvasitem.TextFrame.TextRange.Text
' Word 2010 - change the field in a Textbox (in a drawing canvas)
canvasitem.Select
For Each fld In Selection.Fields
If InStr(fld.Code.Text, "STYLEREF 3 \s") _
Or InStr(fld.Code.Text, "STYLEREF 3") Then _
fld.Code.Text = "STYLEREF ""Heading 3"" "
Next
End If
Next
End If
Next
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.