返回列表 上一主題 發帖

股票資料匯入,程式執行有問題

回復 17# GBKEE
好建議收到了,抽時間再來試試整合後之效果,
原本裡面的主題模組是各自獨立的應用測試,
突發奇想,如果同一主題均分別使用不同處理方式,
如 CreateObject("InternetExplorer.Application")、
.QueryTables.Add()、以及 CreateObject("msxml2.xmlhttp")
與 CreateObject("htmlfile") 搭配應用等,並觀察它們同時外部
帶入參數、如 url = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php?qdate=" & xDate & "&selectType=" & select2
或內部處理方式,如 .Document.ALL("input_date").Value = xDate
.Document.ALL("select2").SelectedIndex = i  以及內部觸發之
.Document.ALL("login_btn").Click 等的不同應用,從其各別的角度
來評估執行成效的。並藉此亦可啟發大家的知的權益及多方之應用。
謝謝您囉!

TOP

回復 17# GBKEE
測試用 (已套用您建議之函數)
  1. Sub Test()
  2.     Dim xTable As Object, k As Integer, C As Integer, R As Integer        '  , sn As Integer
  3.     Dim url As String, cts As Integer, E As Variant, xDate As String      '  , rc As Integer
  4.     Dim oXmlhttp As Object, oHtmldoc As Object, select2 As String         '  , tm
  5.     Dim TVal() As Variant
  6.    
  7.     If Select_Name = -1 Then Exit Sub
  8.     TVal = Array("MS", "ALL", "0049", "0099P", "019919T", "0999", "0999P", "01", "02", "03", _
  9.                 "04", "05", "06", "07", "21", "22", "08", "09", "10", _
  10.                 "11", "12", "13", "24", "25", "26", "27", "28", "29", _
  11.                 "30", "31", "14", "15", "16", "17", "18", "23", "9299", "19", "20", "CB")
  12.    
  13.     xDate = Format(Sheets("總表").[B1], "EE/MM/DD")
  14.     url = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php?qdate=" & xDate & "&selectType=" & TVal(Select_Name)
  15.     'url = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php?qdate=" & xDate & "&selectType=" & Select_Name
  16.     'url = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php?qdate=" & xDate & "&selectType=水泥工業"
  17.     Set oXmlhttp = CreateObject("msxml2.xmlhttp")
  18.     Set oHtmldoc = CreateObject("htmlfile")
  19.     With oXmlhttp
  20.         .Open "Get", url, False
  21.         .Send
  22.         
  23.         Do While .Status <> 200 Or .readyState <> 4: DoEvents: Loop
  24.         
  25.         oHtmldoc.write .responseText
  26.         'MsgBox .responseText
  27.     End With
  28.    
  29.     Set xTable = oHtmldoc.ALL.tags("TABLE")
  30.     ' Stop
  31.     '  看看區域變數視窗 xTable 的內容
  32.     Set xTable = oHtmldoc.ALL.tags("TABLE")(0)
  33.     ' Stop
  34.     '  再次看看區域變數視窗 xTable 的內容
  35.     MsgBox xTable.INNERTEXT
  36. End Sub

  37. Private Function Select_Name() As Integer
  38.     With Sheets("總表").ComboBox1
  39.         If .ListIndex = -1 Then MsgBox ("您尚未選擇「產業類別」,請於" & vbCrLf & "確認後再次點選『開啟網頁』," & vbCrLf & "謝謝您!")
  40.         Select_Name = .ListIndex    '  Select_Name = -1,0,1,2,3,4,5,6,7,8,9,.....39
  41.     End With
  42. End Function
複製代碼

TOP

回復 17# GBKEE

TOP

回復 21# stillfish00
請教應如何解決呢?
困軟我多日了。
謝謝妳!

TOP

回復 23# stillfish00
非常謝謝你!
之前碰到的練習都是接觸到 Get,
所以也沒留意如何去應用 Post 的處哩,
感謝你的指導。   目前
TVal = Array("MS", "ALL", "0049", "0099P", "019919T", "0999", "0999P", "01", "02", "03", _
                "04", "05", "06", "07", "21", "22", "08", "09", "10", _
                "11", "12", "13", "24", "25", "26", "27", "28", "29", _
                "30", "31", "14", "15", "16", "17", "18", "23", "9299", "19", "20", "CB")
目前就只剩下 "ALL" (全部) 的問題仍抓不到,其餘都 OK,或許代碼不對抑或是 . . . . .

我再繼續加油吧。
再次謝謝你囉!

TOP

回復 25# GBKEE
謝謝您!
#15 ~ #20 間的提問,最後我是以
  1. .Open "Post", url, False
複製代碼
取代了
  1. .Open "Get", url, False
複製代碼
才得以解決 "&select2=" & TVal(Select_Name)
的參數引入問題。
可是卻出現寫入之文字部分是一堆亂碼,
所以才會再丟出 由網頁取得的資料,不知道要如何同步編碼成正確之中文碼回傳
相關的提問。上網查看了 Google/亂碼 的討論
好似不太搭嘎,難以解題。
謝謝您費心地回復。
上述 "如何同步編碼" 我亦有加入補充,並附上檔案
再次謝謝您了!麻煩您!

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題