2013-07-19 87 views
0

我试图使用VBA代码删除特定范围内的最后一个字符(“,”)。
当我输入我有的代码时,它给我一个编译错误,说“Expected:=”。从文本范围的末尾删除单个字符

这是我的代码行,给我的问题。

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

您能否展示出现此问题的最简单示例 - 我们不知道如何定义表达式中的所有元素...乍一看,你需要将返回值赋给变量?如果您提供了能够重现错误所需的全部信息,那就太好了。将您的代码粘贴到VBA子版中并不符合该标准(尚未)。你可以编辑一些额外的说明吗? – Floris

回答

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. 的最后一个字符的位置删除结束
0

尝试这种方式开始一个字符范围删除书签的最后一个字符:

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