0

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

这是给我带来问题的代码行。

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

3 回答 3

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. 总是声明你的变量;Option Explicit如果您忘记/拼写错误会抱怨
  2. 检查书签是否存在
  3. 查找书签最后一个字符的位置
  4. 删除从末尾开始的字符范围
于 2013-07-19T18:08:19.973 回答
0

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

doc.Range(doc.Bookmarks("F1").End - 1, _
            doc.Bookmarks("f1").End).Delete
于 2013-07-19T19:15:51.523 回答
0

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

doc.Bookmarks("F1").Range.Delete wdCharacter,-1
于 2021-03-01T09:40:27.113 回答