2017-09-21 44 views
0

我正在尝试使用Microsoft Word中的粘贴和合并格式化宏。我经常从网站复制,然后从该网站粘贴到Word中。不幸的是,该网站的格式始终是:在Word中粘贴和合并格式化

文本

引文

我想要的格式为: “文本”

引用。

我的代码目前是

Sub Paste_Citation() 
' Paste_Citation Macro 
    On Error Resume Next 
    Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis) 
    Selection.TypeBackspace 
    Selection.TypeBackspace 
    Selection.TypeText Text:="." 

End Sub 

我无法弄清楚如何一)不具备文字和引文之间的一段空间,B)把括号中的文本。如果文本末尾没有句点,则格式化为“blah blah”。否则,“等等。”和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

编程的红线应该是分配下载的“文本”和“引”到变量,说

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,而您不知道会出现什么错误以及您想如何处理它。

+0

我试图脱离你说的话,看着一些不同的功能来分割复制的值,但我坚持如何拆分剪贴板文本,但仍然合并格式与单词。 – broncos15

+0

我仍然遇到报价问题,因为我无法弄清楚如何根据段落分割代码,但我至少能够删除文本和引文之间的段落分隔符。 – broncos15

+0

看来你已经到达了我上面建议的最后一段。这是很好的进展。如果你认为这是个好建议,你应该接受并遵循它。您通过将答案标记为“已接受”来接受它。你可以通过以一种可以给出答案的方式提出一个新问题来追踪它。 – Variatus