API 呼び出しを介して解析する必要がある 100,000 個の URL のリストがあります。それらを 600 以上の連結された文字列のリストに並べ替えました。各文字列には 200 の URL が含まれており、解析する準備ができています。
以下のコードを記述してプロセスをループし、返された URL に関する情報を列 C の最後の行に 1 つずつ配置します。しかし、私のループは壊れているようで、理由はわかりません (あまりにも長い間見ている) が、それは初歩的なミスだと思われます。最初の 2 つの連結文字列 (400 個の URL) を処理した後、200 行目あたりから情報を書き換え始め、最初の文字列のみを処理します。
コードは以下にあり、どんな助けでも大歓迎です。残念ながら、私が解析しようとしている URL を共有することはできません。なぜなら、これは私の雇用主によって構築された独自のシステムであり、一般に使用されるものではないためです。
Sub APIDataProcess()
Dim lURLsLastRow As Long
Dim lDataSetLastRow As Long
Dim rngURLDataSet As Range
Dim sURLArray As String
Dim lURLArrayCount As Long
Dim rngArrayCell As Range
lURLsLastRow = Cells(Rows.Count, 1).End(xlUp).Row
lDataSetLastRow = Cells(Rows.Count, 3).End(xlUp).Row
Set rngURLDataSet = Range("A1:A" & lDataSetLastRow)
lURLArrayCount = Range("B1").Value ' placeholder for count increments
sURLArray = Range("A" & lsURLArrayCount).Value
For Each rngArrayCell In rngURLDataSet
If lsURLArrayCount <= lURLsLastRow Then
With ActiveSheet.QueryTables.Add(Connection:="URL;http://test.test.org/test.php", Destination:=Range("C" & lDataSetLastRow))
.PostText = "urls=" & sURLArray
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
lURLArrayCount = lURLArrayCount + 1
Range("B1").Value = lURLArrayCount
Application.Wait Now + TimeValue("00:01:00")
Else
Exit Sub
End If
Next rngArrayCell
End Sub