Board logo

標題: [發問] 如何將下載下來的資料保持原來格式 [打印本頁]

作者: zheng211016    時間: 2018-4-10 19:04     標題: 如何將下載下來的資料保持原來格式

如下圖
此圖 是我由TWSE自動下載的資料 但是有些股票代碼是00開頭的 卻沒辦法保持原來的數值 想請求各位老手協助

[attach]28511[/attach]
[attach]28512[/attach]
作者: nolookyou    時間: 2018-4-26 11:17

回復 1# zheng211016


    小弟直覺不難解決,A欄內容固定是股票代號的話,可嘗試:
   1.載入A欄內容前,儲存格[格式]>[類別]先改成[文字]試試看
   2.或告知下載內容網址我幫你試一下
   3.或直接給EXCEL檔案我幫你試一下
作者: zheng211016    時間: 2018-4-28 22:04

http://www.twse.com.tw/exchangeReport/MI_INDEX?response=html&date=20180427&type=ALLBUT0999
麻煩您了
作者: iamaraymond    時間: 2018-4-29 12:01

回復 3# zheng211016

要不要試試看VBA的方法?
  1. Sub test()

  2. 'Dim t: t = Timer

  3. Cells.Clear

  4. Dim myXML As Object
  5. Set myXML = CreateObject("Microsoft.XMLHTTP")

  6. Dim myHTML As Object
  7. Set myHTML = CreateObject("HTMLFile")

  8. With myXML
  9.     .Open "GET", "http://www.twse.com.tw/exchangeReport/MI_INDEX?response=html&date=" & Format(Now(), "yyyy/mm/dd") & "&type=ALLBUT0999", False
  10.     .send
  11.    
  12.     myHTML.body.innerHTML = .responseText
  13.     Set myTable = myHTML.getElementsByTagName("Table")(4)
  14.     i = 1
  15.    
  16.     For Each myRow In myTable.Rows
  17.         j = 1
  18.         For Each myCell In myRow.Cells
  19.             If j = 1 Then
  20.                 Cells(i, j) = "'" & myCell.innerText
  21.             Else
  22.                 Cells(i, j) = myCell.innerText
  23.             End If
  24.             j = j + 1
  25.         Next
  26.         i = i + 1
  27.     Next
  28.    
  29. End With

  30. Set myXML = Nothing

  31. 'Debug.Print Format(Timer - t, "0.00秒")

  32. End Sub
複製代碼

作者: zheng211016    時間: 2018-4-29 15:03

回復 4# iamaraymond
謝謝大大 果真可以 又迅速 小弟感激不盡
作者: iamaraymond    時間: 2018-4-29 15:43

回復 5# zheng211016

若有問題再提出~




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