0
このコードは基本的には正しく動作していますが、何らかの理由でデータを引き出すことはできません。私は、XとURLを使用して移動し、毎回変更されたが、最初のクエリからデータを挿入し続けると、Name_of_Person変数が変化していきます。理由は何ですか?URLから変数名にURLを渡しても正しいウェブサイトには移動しないデータ
Sub Search_People()
Dim Name_Of_Person As String
Dim URL As String
Dim Dashboard_Sheet As Worksheet
Set Dashboard_Sheet = ThisWorkbook.Sheets("Dashboard")
Dim Data_Sheet As Worksheet
Set Data_Sheet = ThisWorkbook.Sheets("Data")
Dim Data_Dump As Worksheet
Set Data_Dump = ThisWorkbook.Sheets("DataDump")
Dim X As Integer
Dim Y As Integer
Dim Last_Row As Long
Dim Email_Output As Range
Set Email_Output = Data_Dump.Range("A:A")
Dim Cell As Range
Last_Row = Data_Sheet.Cells(Data_Sheet.Rows.Count, 8).End(xlUp).Row
For X = 1 To Last_Row + 1
Name_Of_Person = Data_Sheet.Cells(2 + X, 8)
URL = "URL;" & "https://hn.com/people/"
URL = URL & Name_Of_Person & "%40.com"
With Data_Dump.QueryTables.Add(Connection:= _
URL, _
Destination:=Data_Dump.Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.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
Set Cell = Email_Output.Find("Email")
Worksheets("Data").Cells(2 + X, 9).Value = Cell
End With
Data_Dump.Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Next X
End Sub
あなたはSQLを使用していないので、 'BackgroundQuery:= False'は必要ありません。私はそれがあなたの問題の源だとは確信していません。 – Tim
まず、 'Rows.Count'を実行するシートを明示的に宣言するようにしてください。' Last_Row = Data_Sheet.Cells(Data_Sheet.Rows.Count、8).End(xlUp).Row' That *あなたの 'Rows.Count'がアクティブなシート上で実行されているので、私は「ダッシュボード」になると想定しています。 'F8'を使用してコードをステップ実行すれば、' Last_Row'は何に解決されますか? – BruceWayne
@ BruceWayne私は1003にステップインしています。 – TonyP