返回列表 上一主題 發帖

[發問] 如何找出網站原始檔網址

[發問] 如何找出網站原始檔網址

我想用web查詢,下載公開觀測站的資料,到excel,要如何找出原始檔網址

我想找的網址如下:董監事持股餘額明細資料內的歷史資料
http://mops.twse.com.tw/mops/web/stapap1?

還請逹人大大幫忙,感恩謝謝

了解!感謝G大幫忙解答

TOP

回復 40# blue2263
直接讀取資料,比拐彎(函數計算)讀取資料當然是快的
在有刪工作表的檔案,用#39程式碼, 下載10個代碼,花了6秒,資料正確
在沒有刪工作表的檔案,用#39程式碼, 下載10個代碼,花了3分9秒,資料正確

在沒有刪工作表的檔案(函數太多),執行原來程式(程式執行迴圈一次,活頁簿的函數重算尚未完成)故得到資料不正確
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

謝謝G大幫忙
回覆G大,我的設定是自動的沒錯,
用#39程式碼下載資料內容就正確了
我提供的檔案,有刪掉一些有函數工作表,所以跑起來會很慢
我做了一些測試
在有刪工作表的檔案,用#39程式碼, 下載10個代碼,花了6秒,資料正確
在沒有刪工作表的檔案,用#39程式碼, 下載10個代碼,花了3分9秒,資料正確
在沒有刪工作表的檔案,用#36程式碼,下載10個代碼,花了1分30秒,資料左天測試,是錯誤的(#38情形),今天又測試一次,資料又變回正確了??不知道是什麼問題?
請教G大,理論上是否用#39方法,資料上較不會有問題,
為了下載資料的速度,盡量檔案內也不要太多函數

TOP

本帖最後由 GBKEE 於 2014-2-6 20:55 編輯

回復 38# blue2263
內有很多函數,所以造成資料更新會變的很慢,應該不是如此.
是否活頁簿的計算是手動,要改成自動



下列程式碼,工作表可不用函數算.
  1. Option Explicit
  2. Sub Macro()
  3.     ' 報表整合1-new
  4.     Dim Rng As Range, Ar(1 To 3)
  5.     On Error GoTo 101 '   'web 查無 到下一個代碼
  6.     Set Rng = Sheets("代碼").[a2]
  7.     Do While Rng <> ""   '無代碼 中斷
  8.         With Sheets("原始表")
  9.             .Range("a6") = Rng
  10.             .Range("az7").QueryTable.Refresh BackgroundQuery:=False
  11.             With .Range("BB12:BB27")
  12.                 Ar(1) = Application.Transpose(.Cells)         '人數
  13.                 Ar(2) = Application.Transpose(.Offset(, 1))   '股數
  14.                 Ar(3) = Application.Transpose(.Offset(, 2))   '佔集保庫存數比例 (%)
  15.             End With
  16.         End With
  17.         With Sheets("匯總").Range("A1").End(xlDown).Offset(1) '選擇工作表,到最底行
  18.              .Cells(1) = Rng
  19.              .Cells(1, 2) = Rng.Offset(, 1)
  20.              .Cells(1, "C").Resize(, UBound(Ar(1))) = Ar(1)
  21.              .Cells(1, "S").Resize(, UBound(Ar(1))) = Ar(2)
  22.              .Cells(1, "AI").Resize(, UBound(Ar(1))) = Ar(3)
  23.              .Cells(1, "AX") = ""
  24.             '.Range("A1:aw1").Value = Sheets("原始表").Range("A6:aw6").Value
  25.        End With
  26. 101
  27.          Set Rng = Rng.Offset(1)   '下一個代碼
  28.     Loop
  29. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

感謝G大熱心幫忙,問題1,己可正常執行了
另請教G大,因我這個檔案,內有很多函數,所以造成資料更新會變的很慢
所以執行巨集時會造成資料錯誤,如下圖
請教G大是否有程式碼,可解決此問題,還是只能將檔案分開為兩個(下載資料用,及分析用)

TOP

本帖最後由 GBKEE 於 2014-2-6 13:46 編輯

回復 36# blue2263
  1. Sub Macro()
  2.     ' 報表整合1-new
  3.     Dim Rng As Range
  4.     On Error GoTo 101 '   'web 查無 到下一個代碼
  5.     Set Rng = Sheets("代碼").[a2]
  6.     Do While Rng(1) <> ""   '無代碼 中斷
  7.         With Sheets("原始表")
  8.             .Range("a6") = Rng
  9.             .Range("az7").QueryTable.Refresh BackgroundQuery:=False
  10.         End With
  11.         With Sheets("匯總").Range("A1").End(xlDown).Offset(1) '選擇工作表,到最底行
  12.                 .Range("A1:aw1").Value = Sheets("原始表").Range("A6:aw6").Value
  13.             End With
  14. 101
  15.          Set Rng = Rng.Offset(1)   '下一個代碼
  16.     Loop
  17. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

G大,不好意思我指的問題程序是,報表整合1-new
程式會中斷及按F8執行,下載資料拿錯誤,都是此程序
謝謝G大

TOP

回復 34# blue2263
按F8逐行執行是哪一個程序
  1.   '****** 附檔沒這工作表
  2.     With Sheets("巨集工作表")
  3.         Set Rng(1) = .Range("B2")
  4.         .Activate
  5.     End With
  6.     'Sheets("匯總").UsedRange.Offset(1).Clear   '用此程式碼" 如需清除舊有資料
  7.     Do While Rng(1) <> ""
  8.         Rng(1).Activate
  9.         With Sheets("原始表")
  10.             .Range("B2") = Rng(1)
  11.             '****  .Range("E7") 沒有Web  **********
  12.             .Range("E7").QueryTable.Refresh BackgroundQuery:=False
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

G大你好,之前程式,為了需求,做了一些修改,有些問題,想請G大麻煩幫我看一下
1.程式會無法自動執行,會中斷?
2.按F8逐行執行沒有問題,但發現執行下載後的資料與原始資料不同?

檔A.rar (74.39 KB)

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題