使用 Visual Basic 移动一行和一个书签

Moving a line and a bookmark using visual Basic

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

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

ORDNUM

OPERATIONORDERWIT

我需要它来执行此操作:

ORDNUM
OPERATIONORDERWIT

我试过 \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

尝试

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

一种更简单的方法是拥有一个书签并根据需要构建文本字符串添加回车 returns (vbCr)。

每行将以 return 结尾。确保书签包含 return。然后,代替 ORDNUM.Text = Me.ORDNUM.Value,使用如下内容:

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