插入字表标题vba:标题字符限制

时间:2016-04-21 00:27:17

标签: vba vbscript ms-word

我有一个非常简单的函数,它从变量txt获取字符串并使用InsertCaption将其转换为标题。此时,我可以将一个非常长的字符串(超过255个字符)传递给此函数,但不知怎的,InsertCaption仍然截断我的变量txt并将大小限制为255.那么有没有办法这个周围的工作?我可以破解这个功能吗?谢谢!

appWD.Selection.InsertCaption Label:=Lbl, _
                              Title:=txt & txt, _
                              Position:=0, _
                              ExcludeLabel:=0   'wdCaptionPositionAbove = 0

1 个答案:

答案 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