我是一名记者。我花了无数个小时从各种网页上复制简短的段落,然后将这些段落 - 以及我发现它们的网站的归属 - 粘贴到基于网络的文章中。
例如,我的很多文章都有这样的段落:
墨西哥财政部长wrote:
严格来说,欧元汇率对德国经济的竞争地位来说太低了。
我想使用VBA执行以下操作:
(1)当我突出我要复制的文本时 - 在示例中“严格来说,欧元汇率对于德国经济的竞争地位来说太低了”
(2)我还会自动复制文本来源的网址(在本例中为http://www.cnbc.com/2017/02/06/german-finance-minister-agrees-euro-too-low-for-germany.html)
(3)因此,当我将文本粘贴到我的博客中时,它会自动粘贴文本,也会自动粘贴网址。换句话说,我最终会得到我上面写的内容。
我认为写脚本是IE.LocationURL来自动确定我所在的网址。我知道如何启动Internet Explorer并导航到网页。
但我不知道如何将剧本放在一起。
这是我的尝试:
Const READYSTATE_COMPLETE = 4
' Declare Windows API function for setting active window
Declare Function SetForegroundWindow Lib "user32" _
Alias "SetForegroundWindow" (ByVal Hwnd As Long)As Long
' Declare Internet Explorer object
Dim IE As SHDocVw.InternetExplorer
Sub Main
' create instance of InternetExplorer
Set IE = New InternetExplorer
' using your newly created instance of Internet Explorer
With IE
SetForegroundWindow IE.HWND
.Visible = True
.Navigate2 "http://www.cnbc.com/2017/02/06/german-finance-minister-agrees-euro-too-low-for-germany.html"
' Wait until page we are navigating to is loaded
Do While .Busy
Loop
Do
Loop Until .ReadyState = READYSTATE_COMPLETE
On Error Resume Next
If Err Then
'Do Nothing
Else
'Copy the selected text
SendKeys "^c"
' Here's where I'm trying to copy the url
debug.print.IE.LocationURL
End With
End If
' Tidy Up
Set IE = Nothing
End Sub
然后我会运行另一个脚本来自动登录我的发布平台并粘贴复制的文本和网址信息。理想情况下,它将以此帖子顶部显示的格式粘贴(使用链接文本,然后缩进引号)。
但是,如果我只是复制了文本和网址,这仍然会节省很多时间。
我使用Nuance Dragon Naturally Speaking来运行我的VBA脚本。
但我迷路了。请帮助引导我朝正确的方向前进!谢谢!
更新:我想我真正需要的是一种将url存储为字符串的方法。然后我可以写出字符串(并使用control-v以旧方式粘贴所选文本。)
那么有谁知道如何读取和存储url作为字符串或值?
答案 0 :(得分:0)
玩弄一堆可能性,我想我终于创建了一个有效的脚本。
为此,我
(1)首先必须通过突出显示网址并使用键盘上的control-c将其复制到剪贴板,手动从网页复制网址;
(2)选择(即用我的键盘手动突出显示)我要复制的文章中的文字。
这是脚本:
Sub Main
Dim MyData As DataObject
Dim strClip As String
Set MyData = New DataObject
MyData.GetFromClipboard
strClip = MyData.GetText
Wait 5
SendKeys "^c"
'I have code here to open up the webpage where I'm inserting the information
SendKeys "^v"
' The line above pastes the text I have selected
SendKeys strClip
' The line above sends the url which I previously saved
End Sub
我不知道它是否是最有效或最优雅的解决方案,但它确实有效。