0

アリゾナ州のすべてのカイロプラクターの連絡先情報のマスター リストを作成したいと思います。理事会のウェブサイトにはすべてのカイロプラクターがリストされてい ますが、クリックして個々の住所と電話番号を確認する必要があります.

各カイロプラクターに関するすべての情報を単一のスプレッドシート行形式で取得するにはどうすればよいですか?

4

1 に答える 1

0

かんたんだよ。最初のシートでData > External data > From website. URLを貼り付け、メインテーブルを選択して行いNext、A1に入れます。

VBA エディターに次の式を貼り付けて実行します。Web サイトからすべてのデータを取得し、Sheet2. 後は質問のトピックではないデータの整理だけなので、お任せします。

Sub ExtractAllData()
    Dim dest As Range, license As Range
    Dim license_no As String

    Worksheets("Feuil2").Select
    Set dest = Worksheets("Feuil2").Range("A1")
    Set license = Worksheets("Feuil1").Range("C3")
    Do Until license.Value = ""
        license_no = Mid(license.Value, 1, InStr(1, license.Value, " "))
        With Worksheets("Feuil2").QueryTables.Add(Connection:= _
            "URL;http://www.azchiroboard.us/ProDetail.asp?LicenseNo=" & license_no, Destination:= _
            dest)
            .Name = "ProDetail.asp?LicenseNo=" & license_no
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = "1"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
        Set dest = Range("A65535").End(xlUp)
        Set dest = dest.Offset(1, 0)
        Set license = license.Offset(1, 0)
    Loop
End Sub

ちなみに、メイン テーブルからデータを取得する方法を理解するのに 1 分かかりました。リンクがライセンス番号を使用して PHP ページを呼び出すだけであることを理解するのに 1 分かかります。マクロを記録するのに 1 分、それを適応させて間違いを修正するのに 5 分。

于 2013-05-15T16:39:28.900 に答える