Board logo

標題: 請問怎麼將A欄的數字代入, 查詢網頁 [打印本頁]

作者: color790    時間: 2011-6-23 16:15     標題: 請問怎麼將A欄的數字代入, 查詢網頁

請問一下.....
我的A欄是股票代號(幾十個), 想由雅虎查詢股價
http://tw.stock.yahoo.com/q/q?s=股票代號
該怎麼寫vba, 會很複雜嗎??
作者: mark15jill    時間: 2011-6-23 16:36

回復 1# color790


    板上有很多關於查詢 股票的一些方法~~
再者 你這樣說 誰知道你在說甚麼..
作者: Hsieh    時間: 2011-6-23 17:12

回復 1# color790
  1. Sub nn()
  2. For Each a In Range([A1], [A1].End(xlDown))
  3. Set MyIe = CreateObject("InternetExplorer.Application")
  4. With MyIe
  5. .Visible = True
  6. .navigate "http://tw.stock.yahoo.com/q/q?s=" & a
  7. Do Until .readyState = READYSTATE_COMPLETE
  8.    DoEvents
  9. Loop
  10. Set MyDoc = .document
  11. With MyDoc.getElementsByTagName("TABLE")(5)
  12. For k = 0 To .Rows.Length - 1
  13. s = 2
  14.   For Each n In .Rows(k).Cells
  15.   Cells(k + 1, s) = n.innerText
  16.   s = s + 1
  17.   Next
  18. Next

  19. End With
  20. .Quit
  21. End With
  22. Next
  23. End Sub
複製代碼

作者: color790    時間: 2011-6-23 21:42

HI~版主,謝謝你的回答
我把程式碼COPY進去,但執行時只有出現IE的視窗,後來就沒有動了,
關掉IE就會出現 錯誤, 偵錯後是下面這一行
Set MyDoc = .document
再麻煩你幫忙解答,感恩~
作者: Hsieh    時間: 2011-6-24 09:27

回復 4# color790
1.完整宣告看看
2.A欄必須要有有效的股票代碼
  1. Sub nn()
  2. '設定引用項目Microsoft Internet Controls
  3. '設定引用項目Microsoft HTML Object Library
  4. Dim MyIE As InternetExplorer, MyDoc As HTMLDocument
  5. r = 1
  6. For Each a In Range([A1], [A65536].End(xlUp))
  7. Set MyIE = CreateObject("InternetExplorer.Application")
  8. With MyIE
  9. .Visible = True
  10. .navigate "http://tw.stock.yahoo.com/q/q?s=" & a
  11. Do Until .readyState = READYSTATE_COMPLETE
  12.    DoEvents
  13. Loop
  14. Set MyDoc = .document
  15. With MyDoc.getElementsByTagName("TABLE")(5)
  16. For k = 0 To .Rows.Length - 1
  17. s = 2
  18.   For Each n In .Rows(k).Cells
  19.   Cells(k + r, s) = n.innerText
  20.   s = s + 1
  21.   Next
  22. Next

  23. End With
  24. .Quit
  25. End With
  26. r = r + 3
  27. Next
  28. End Sub
複製代碼

作者: color790    時間: 2011-6-24 11:36

回復  color790
1.完整宣告看看
2.A欄必須要有有效的股票代碼
Hsieh 發表於 2011-6-24 09:27


在公司的電腦出現
使用者型態未定義----> MyIE As InternetExplorer
過幾天回家再試試看, 家裡是用XP, 公司是win7, 都是excel2010 (不知道有沒有關)

另外可以問一個小問題嗎??
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row = 1 Then
strtmp = Application.GetOpenFilename()
If strtmp = "False" Then Exit Sub
ActiveSheet.Pictures.Insert(strtmp).Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 83
Selection.ShapeRange.Width = 162
End If
End Sub
這邊target 可以多個範圍嗎(不規則), 比如1,5,8,9......)
因為我打 If Target.Row = 1 or 3 怎麼變成全部的儲存格都會執行?
作者: Hsieh    時間: 2011-6-24 14:27

回復 6# color790

注意:必須設定引用項目
[attach]6780[/attach]
作者: color790    時間: 2011-6-25 21:01

Hi~版主
請問一下,這幾行是什麼意思
For k = 0 To .Rows.Length - 1
s = 2
  For Each n In .Rows(k).Cells
  Cells(k + r, s) = n.innerText
  s = s + 1
  Next
Next
還有r=r+3
謝謝版主~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)