返回列表 上一主題 發帖

[發問] 檔案下載問題

本帖最後由 Hsieh 於 2011-10-2 17:48 編輯

回復 3# spermbank

看不懂你的整體流程
你是要把12個檔案全部以一 個公司代碼完成更新後,再將風險評估與獲利指標2個檔案內的那些工作表以代號為名另存新檔嗎?
但不是12個檔案都有"載入個股資料"的程式碼阿
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2011-10-3 22:53 編輯

回復 5# spermbank

我不善於破解
但依你敘述或許可試試在個股基本面分析.xls一般模組
執行更新主程序試試
  1. Sub 更新主程序()
  2. With ThisWorkbook
  3. For Each a In .Sheets(1).[A2:A1341] '每個代號循環
  4.   更新資料 a '執行12檔案更新
  5.   Workbooks("風險評估.xls").Sheets(Array("IS", "ISQ", "BS", "BSQ", "BASIC", "YrPrice", "FR", "CFS", "ISQT")).Copy '複製工作表
  6.   ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & CStr(a) & ".xls" '另存新檔
  7.   Workbooks("營業收入變動.xls").Sheets("Revenue").Copy Before:=Workbooks(CStr(a) & ".xls").Sheets(1) '複製工作表
  8.   關檔
  9. Next
  10. End With
  11. End Sub
  12. Sub 更新資料(a)
  13. Dim Sh As Worksheet, MyURL$, MyQy As QueryTable
  14. With ThisWorkbook
  15. fd = .Path & "\基本面\"
  16. fs = Dir(fd & "*.xls")
  17. Do Until fs = ""
  18. With Workbooks.Open(fd & fs)
  19.    For Each Sh In .Sheets
  20.       With Sh
  21.       If .QueryTables.Count > 0 Then
  22.          Set MyQy = .QueryTables(1)
  23.          With .QueryTables(1)
  24.          MyURL = .Connection
  25.          If InStr(MyURL, "StockID") > 0 Then
  26.             k = Val(Split(MyURL, "=")(UBound(Split(MyURL, "="))))
  27.             Else
  28.             k = Val(Split(MyURL, "_")(1))
  29.          End If
  30.          MyURL = Replace(MyURL, k, a)
  31.          .Connection = MyURL '更改查詢
  32.          .BackgroundQuery = False '幕前更新
  33.          .Refresh '更新
  34.          End With
  35.       End If
  36.       End With
  37.    Next
  38. End With
  39. fs = Dir()
  40. Loop
  41. End With
  42. End Sub
  43. Sub 關檔()
  44. For Each w In Windows
  45. If w.Caption <> ThisWorkbook.Name Then w.Close 1
  46. Next
  47. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 8# spermbank
要另存成xlsx檔案,前面的存檔就要一起改成xlsx
之前提到的不是每個檔案都有該程序,是因為我測試時沒有開放巨集導致誤解
原作者以按鈕驅動模組內程序,可利用複製工作表,就能看到工作表模組內程式碼
但是若要看到全部程式碼就必須破解,況且每個檔案程式碼是以InputBox輸入代碼
所以,要每個檔案修改程式碼不如重新撰寫
學海無涯_不恥下問

TOP

回復 10# spermbank

關於程式碼出錯
請檢查Workbooks("營業收入變動.xls").Sheets("Revenue")    此工作表是否存在?(注意工作簿副檔名是否正確)
學海無涯_不恥下問

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題