我有一个非常简单的函数,它从变量txt
获取字符串并使用InsertCaption
将其转换为标题。此时,我可以将一个非常长的字符串(超过255个字符)传递给此函数,但不知怎的,InsertCaption
仍然截断我的变量txt
并将大小限制为255.那么有没有办法这个周围的工作?我可以破解这个功能吗?谢谢!
appWD.Selection.InsertCaption Label:=Lbl, _
Title:=txt & txt, _
Position:=0, _
ExcludeLabel:=0 'wdCaptionPositionAbove = 0
答案 0 :(得分:0)
这似乎是Word VBA的限制。有许多将文本限制为255个字符,这些字符来自早期的WordBasic日期。 (VBA对象模型覆盖了旧的WordBasic。)
解决此问题的一种方法是检查分配给标题的字符串是否超过255个字符。如果是,请将余数附加到标题。例如:
Sub InsertCaptionLongerThan255Chars()
Dim tbl As Word.Table
Dim sCapText As String
Dim rngCap As word.Range
Set tbl = ActiveDocument.Tables(1)
sCapText = String(400, "x")
tbl.Range.InsertCaption "Table", sCapText
If Len(sCapText) > 255 Then
'The selection in the document moves to the new caption
Set rngCap = Selection.Range.Paragraphs(1).Range
'Put the target at the end of the caption's paragraph
rngCap.Collapse wdCollapseEnd
rngCap.MoveEnd wdCharacter, -1
'Add the remainder of the text
rngCap.Text = Mid(sCapText, 256)
End If
End Sub