如何自动复制网站地址URL

时间:2017-07-09 03:28:00

标签: vba

我是一名记者。我花了无数个小时从各种网页上复制简短的段落,然后将这些段落 - 以及我发现它们的网站的归属 - 粘贴到基于网络的文章中。

例如,我的很多文章都有这样的段落:

墨西哥财政部长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作为字符串或值?

1 个答案:

答案 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

我不知道它是否是最有效或最优雅的解决方案,但它确实有效。