2017-04-20 38 views
1

我正在将数据从MS Access导出到MS PowerPoint,部分数据是带有多个段落的文本字段(长),如在单个字段中的行之间打ENTER。 这个结果,在我想清除的各种现象出口后。其中最令人不安的是在Powerpoint幻灯片中出现的控制和特殊字符。如何使用VBA删除PowerPoint中的双空行?

我主要是尝试使用:搜索和替换”的方法,如

shp.TextFrame.TextRange.Text = REPLACE(shp.TextFrame.TextRange.Text, “这个”, “该”)

但我不知道如何解决双空行问题,而且似乎有一整套换行字符和组合(见This SO question),我不知道哪些字符在那里 在MS因为它的搜索和替换功能支持这些功能,所以相对来说更容易特殊字符。在Powerpoint中不是这样。

感谢

回答

2

试试这个宏删除多个空行

Function removeMultiBlank(s As String) As String 
    With CreateObject("VBScript.RegExp") 
     .Global = True 
     .MultiLine = True 
     .IgnoreCase = True 
     .Pattern = "^\s" 

     removeMultiBlank= .Replace(s, "") 
    End With 
End Function 

使用它像

With shp.TextFrame.TextRange 
    .Text = removeMultiBlank(.Text) 
End With 
+0

那不删除所有内嵌格式? – Jbjstam

+2

@Jbjstam是的,它会的。 OP不应该在格式化文本上使用它。用于从Access导入的文本。 –

+1

哦,是的,忽略了那部分。有一个upvote! – Jbjstam