从一系列文本的末尾删除单个字符

时间:2013-07-19 18:01:57

标签: vba ms-word range

我正在尝试使用VBA代码删除特定范围内的最后一个字符(",")。
它给了我一个编译错误说"预期:="当我输入我的代码时。

这是我的代码行,它给了我一些问题。

doc.Bookmarks("F1").Range.Delete(wdCharacter,-1)

3 个答案:

答案 0 :(得分:1)

以下代码似乎可以执行您想要的操作:

Option Explicit
Sub test()
  Dim r
  If ActiveDocument.Bookmarks.Exists("mark1") Then
    r = ActiveDocument.Bookmarks("mark1").Range.End
    ActiveDocument.Range(r - 1, r).Delete
  End If
End Sub

说明:

  1. 始终声明您的变量;如果您忘记/拼错<{li>,Option Explicit会抱怨
  2. 检查书签是否存在
  3. 找到书签最后一个字符的位置
  4. 删除从最后开始的字符范围

答案 1 :(得分:0)

尝试这种方法删除书签的最后一个字符:

doc.Range(doc.Bookmarks("F1").End - 1, _
            doc.Bookmarks("f1").End).Delete

答案 2 :(得分:0)

实际上,您是通过使用括号将Delete方法作为函数调用的。函数具有必须存储在某处的返回值。因此,非常字面的错误消息“预期:=”。 通过删除括号,尝试将其称为过程(即不期望返回值):

doc.Bookmarks("F1").Range.Delete wdCharacter,-1