【问题标题】:Moving a line and a bookmark using visual Basic使用 Visual Basic 移动线条和书签
【发布时间】:2020-11-07 12:44:44
【问题描述】:

如果文本框没有与 Word 中的相应书签一起使用,则尝试使用 Visual Basic 删除一行。用户将使用单击按钮并评估是否使用了文本框。

例如,如果没有通过文本框使用 TITLEWARNO,它将如下所示:

ORDNUM

操作指令

我需要它来做这个:

ORDNUM
操作指令

我已经尝试过 \LINE 和 trim 命令。最后一天我真的一直坚持这一点,并在谷歌上搜索了这个不起作用的不同变体。

Private Sub CommandButton1_Click()
    Dim ORDNUM As Range
    Set ORDNUM = ActiveDocument.Bookmarks("ORDNUM").Range
    ORDNUM.Text = Me.ORDNUM.Value
    
    Dim TITLEWARNO As Range
    Set TITLEWARNO = ActiveDocument.Bookmarks("TITLEWARNO").Range
    TITLEWARNO.Text = Me.TITLEWARNO.Value
    
    Dim OPERATIONORDERWIT As Range
    Set OPERATIONORDERWIT = ActiveDocument.Bookmarks("OPERATIONORDERWIT").Range
    OPERATIONORDERWIT.Text = Me.OPERATIONORDERWIT.Value

【问题讨论】:

    标签: vba ms-word bookmarks


    【解决方案1】:

    试试

    Private Sub CommandButton1_Click()
      Dim ORDNUM As Range
      Set ORDNUM = ActiveDocument.Bookmarks("ORDNUM").Range
      If Me.ORDNUM.Value = vbNullString Then
        ORDNUM.Paragraphs(1).Range.Delete
        ActiveDocument.Bookmarks("ORDNUM").Delete
      Else
        ORDNUM.Text = Me.ORDNUM.Value
      End If
        
      Dim TITLEWARNO As Range
      Set TITLEWARNO = ActiveDocument.Bookmarks("TITLEWARNO").Range
      If Me.TITLEWARNO.Value = vbNullString Then
        TITLEWARNO.Paragraphs(1).Range.Delete
        ActiveDocument.Bookmarks("TITLEWARNO").Delete
      Else
        TITLEWARNO.Text = Me.TITLEWARNO.Value
      End If
        
      Dim OPERATIONORDERWIT As Range
      Set OPERATIONORDERWIT = ActiveDocument.Bookmarks("OPERATIONORDERWIT").Range
      If Me.OPERATIONORDERWIT.Value = vbNullString Then
        OPERATIONORDERWIT.Paragraphs(1).Range.Delete
        ActiveDocument.Bookmarks("OPERATIONORDERWIT").Delete
      Else
        OPERATIONORDERWIT.Text = Me.OPERATIONORDERWIT.Value
      End If
    

    更简单的方法是使用单个书签并根据需要添加回车符 (vbCr) 来构建文本字符串。

    【讨论】:

    • 谢谢!由于某些奇怪的原因,不需要“ActiveDocument.Bookmarks("OPERATIONORDERWIT").Delete”来获得我需要的东西。这对我来说很有意义。
    【解决方案2】:

    每一行都以回车结束。确保书签包含该返回。然后,代替 ORDNUM.Text = Me.ORDNUM.Value,使用如下内容:

    If Me.ORDNUM.Value = vbCr Then
      ActiveDocument.Bookmarks("ORDNUM").Range.Text.Hidden = True
    End If
    

    【讨论】:

    • 对另一个项目很有帮助,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 2015-07-27
    相关资源
    最近更新 更多