2017-08-11 6 views
1

私は文書の上に横たわっているコードとURLで詰め込まれた単語文書を持っています。ワード文書のURLを別の文書にコピーする方法は?

私はこの単語の文書内ののすべてのURL をどのように抽出して別の文書に貼り付けることができるか調べてみましたか?

URLのすべてが..

https://subdomain.domain.comで始まる同じウェブサイトを持っている問題がある..私は私がグーグルで試みたが、すべてのしている通常の.jpg

で終わる完全なURLリンクが必要になります私は、ハイパーリンクのURLをどのように抽出できるかについての解決策を見つける。私の状況で解決策を見つけることができなかったので、皆さんが助けてくれることを願っています!

+0

答えをマークしてください – AndriuZ

答えて

0

この文書を解析し、新しいDocumentへのすべてのURLのあなたと出力の配列見つける:

Option Explicit 

Sub FindLinks() 
    Dim p As Paragraph 
    Dim vSplit As Variant 
    Dim nIndex As Integer 
    Dim sURLs() As String 
    ReDim sURLs(0) 

    ' find each URL and add it to an array 
    For Each p In ActiveDocument.Paragraphs 
    vSplit = Split(p.Range, " ") 
    For nIndex = 0 To UBound(vSplit) 
     If InStr(vSplit(nIndex), "https://stackoverflow.com") > 0 Then 
     ReDim Preserve sURLs(UBound(sURLs) + 1) 
     sURLs(UBound(sURLs)) = Replace(vSplit(nIndex), "src=", "") 
     End If 
    Next 
    Next 

    ' create a new document and output the array 
    Dim sURL As Variant 
    Documents.Add 
    For Each sURL In sURLs 
    Selection.TypeText sURL 
    Selection.TypeParagraph 
    Next 

End Sub 
+0

こんにちはブラブスは助けてくれてありがとう..スクリプトはうまくいきましたが、このすべての出力は次のようなものでした: "src =" https://subdomain.domain.com/wp-content/uploads /2017/05/1608-7a9fa682e3651b02.jpg?size=96184 &高さ= 640 &幅= 640 &ハッシュ= 710eee30989aa7a871e3e682d4923e28" " とにかく、私たちは私だけのhttpsからURLを示して出力することができ:の最後の部分にしますURL - jpgまたはjpeg? – Alvin

+0

私は 'Replace'を追加しました。 – braX

1

を私はCに結果を送信するためにコードを編集した:\一時\のmy_links.txtを。コードを編集して宛先を変更することができます。

Public Sub GetUrls() 
    Dim r As Range 
    Dim outfile As String 

    outfile = "C:\temp\my_links.txt" 
    Open outfile For Output As #1 
    Set r = ActiveDocument.Range 
    r.Select 

    With Selection.Find 
     .ClearFormatting 
     .Text = "https://subdomain.domain.com/*.jpg" 
     .Forward = True 
     .Wrap = wdFindStop 
     .MatchWildcards = True 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
    End With 

    Do While Selection.Find.Execute 
     Write #1, Selection.Text 
    Loop 

    Close #1 
End Sub 

私はテストファイルでこれを実行すると、私は出力ファイルにこれを取得する:

"https://subdomain.domain.com/res1/joe.jpg" 
"https://subdomain.domain.com/res2/cat.jpg" 

希望に役立ちます。

+0

コードを実行しようとしたが、私は199よりも多くのデータを持っていると思う。代わりに結果が新しい単語の文書に印刷されるコードを修正するのに役立つでしょうか?私はこのように199限界が起こらないと思う! – Alvin

+0

結果をファイルに送信するコードを編集しました。それは199以上のリンクを持つべきである。 – xidgel

関連する問題