我正在尝试在Microsoft Word中粘贴和合并格式化宏。我经常从一个网站复制,然后从该网站粘贴到Word。不幸的是,网站格式始终是:
文本
引用
我希望格式为:
"文本&#34。引文。
我的代码目前是
Sub Paste_Citation()
' Paste_Citation Macro
On Error Resume Next
Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis)
Selection.TypeBackspace
Selection.TypeBackspace
Selection.TypeText Text:="."
End Sub
我无法弄清楚如何a)在文本和引文之间没有段落空格,b)在文本周围加上括号。如果文本末尾没有句号,则格式为"等等等等等等。否则,"等等等等。" c)如果文本只包含空格和句号,则不包括文本。我知道我需要为c做一个if语句,但我对Word中的VBA不是很熟悉。有人可以和我一起完成这个过程吗?
编辑#1
x = Selection.PasteAndFormat(wdFormatSurroundingFormattingWithEmphasis)
'trying to set x equal to the pasted formatted value
Dim Txt As String
Dim Cit As String
Txt = Split(x, Chr(182))
'trying to split the text based on the paragraph symbol
'I am confused on what I need to do from there
编辑#2 我一直在努力,我认为我非常接近。我想出了如何粘贴信息并合并格式,以及如何删除段落。我现在的问题是,我无法弄清楚如何让它在第一段附近加上引号,将光标移到粘贴的末尾,并在结尾添加句号。
Sub PasteCitation()
'Modified code from http://www.vbaexpress.com/forum/archive/index.php/t-46321.html
Application.ScreenUpdating = False
Dim Txt As Range
Set Txt = Selection.Range
Txt.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis)
With Txt.Find
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
'Replace single paragraph breaks with a space
.Text = "([!^13])([^13])([!^13])"
.Replacement.Text = "\1 \3"
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
编程的红线应该是分配下载的'文本'和'引用'变量,比如说
Dim Txt As String
Dim Cit As String
Txt = "Whatever you scraped from tre website"
Cit = "Whatever else you scraped from the web"
完成后,您可以开始操作每个字符串,然后将它们放在您想要的文档中,可能位于当前选择的位置。
当您使用此方法时,您可能会遇到可以快速回答的个别问题。同时,避免使用On Error Resume Next
,而不知道可能出现的错误以及您希望如何处理错误。