Excel Visual Basic循环

Excel Visual Basic循环,excel,vba,Excel,Vba,我希望循环查询它正下方单元格中的股票代码并循环,直到它为列中的所有股票代码提取数据 总结: 我正试图从A列中提取股票代码符号的数据 这是我正在使用的代码 Sub URL_Static_Query() ''Pull Data from Profile With Sheet2.QueryTables.Add(Connection:= _ "URL;http://finance.yahoo.com/q/pm?s=" & Sheet1.Range("A2").Value &am

我希望循环查询它正下方单元格中的股票代码并循环,直到它为列中的所有股票代码提取数据

总结:

我正试图从A列中提取股票代码符号的数据 这是我正在使用的代码

Sub URL_Static_Query()


''Pull Data from Profile

With Sheet2.QueryTables.Add(Connection:= _
      "URL;http://finance.yahoo.com/q/pm?s=" & Sheet1.Range("A2").Value & "+Performance", _
         Destination:=Sheet2.Range("A1"))
 .BackgroundQuery = True
 .TablesOnlyFromHTML = True
 .Refresh BackgroundQuery:=False
 .SaveData = True

 End With

''Pull Data from Performance
 With Sheet3.QueryTables.Add(Connection:= _
      "URL;http://finance.yahoo.com/q/pr?s=" & Sheet1.Range("A2").Value & "+Profile", _
         Destination:=Sheet3.Range("A1"))

.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With

'Grab and Paste 3-month
Sheets("Sheet2").Select
Range("A1").Select

Cells.Find(What:="3-month", After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

ActiveCell.Offset(0, 1).Select
Selection.Copy

Sheets("Sheet1").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

'Grab and Paste 1-Year
Sheets("Sheet2").Select
Range("A1").Select

Cells.Find(What:="1-Year", After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

Sheets("Sheet1").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 2).Select

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

 Sheets("Sheet3").Select
 Range("A1").Select

 Cells.Find(What:="Prospectus Net Expense Ratio:", After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

ActiveCell.Offset(0, 1).Select
Selection.Copy
Sheets("Sheet1").Select
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste

Sheet2.Cells.Clear
Sheet3.Cells.Clear

End Sub

您可以将此代码包装在一个循环中,该循环将逐个向下遍历列中的每个单元格

例如,如果使用列A

Dim row_counter As Long, last_row As Long
row_counter = 1
'last_row = whatever your last row is

Do While row_counter < last_row
  '... put looping code here
  row_counter = row_counter + 1
Loop
Dim row\u计数器的长度与最后一行的长度相同
行计数器=1
'last_row=无论您的最后一行是什么
当行计数器<最后一行时执行
'... 把循环代码放在这里
行计数器=行计数器+1
环

您可以将此代码包装在一个循环中,该循环沿着列中的每个单元格逐个向下移动

例如,如果使用列A

Dim row_counter As Long, last_row As Long
row_counter = 1
'last_row = whatever your last row is

Do While row_counter < last_row
  '... put looping code here
  row_counter = row_counter + 1
Loop
Dim row\u计数器的长度与最后一行的长度相同
行计数器=1
'last_row=无论您的最后一行是什么
当行计数器<最后一行时执行
'... 把循环代码放在这里
行计数器=行计数器+1
环

快速搜索
查找下一个
循环应提供几个示例和所需信息快速搜索
查找下一个
循环应提供几个示例和所需信息