Board logo

標題: [發問] 匯入外部資料問題 [打印本頁]

作者: xisun2002    時間: 2010-11-25 10:14     標題: 匯入外部資料問題

請問各位大大要如何確認目前所有的工作表已經更新完畢,譬如:工作表1正在執行外部更新,而我要怎麼在程式碼中確認"工作表1的外部更新程序是否已經結束"。
作者: 沙拉油    時間: 2010-11-26 00:02

http://blog.xuite.net/saladoil/excel/7379326
作者: xisun2002    時間: 2010-11-26 12:50

大大你的程式我看得懂但是我不知道該怎麼結合自己的程式碼
這是我的程式碼:

Sub 更新外部資料()
'
' 更新外部資料 Macro
' Queen 在 2010/10/7 錄製的巨集
'

'
    Application.ScreenUpdating = False
    On Error Resume Next
    Sheets("損益表").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("資產負債表").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("基本資料").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("股價").Select
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False
    Sheets("資料").Select
    Application.ScreenUpdating = True
End Sub
作者: GBKEE    時間: 2010-11-26 14:55

回復 3# xisun2002
  1. Sub Ex()
  2.     Dim Sh As Worksheet, Query As QueryTable
  3.     For Each Sh In ThisWorkbook.Worksheets
  4.         For Each Query In Sh.QueryTables
  5.             Query.Refresh 0  'BackgroundQuery:=False
  6.         Next
  7.     Next
  8. End Sub
複製代碼

作者: 沙拉油    時間: 2010-11-26 16:35

本帖最後由 沙拉油 於 2010-11-26 16:45 編輯

一個物件類別、一個模組
貼上程式碼之後得重新開啟檔案
  1. '物件類別模組 QytCls 的程式碼
  2. Public WithEvents qyt As QueryTable
  3. Public qname As String
  4. Private Sub qyt_AfterRefresh(ByVal Success As Boolean)
  5.   MsgBox qname & " 更新結束!"
  6. End Sub
  7. '模組 Module1 的程式碼
  8. Dim qyts() As New QytCls
  9. Private Sub auto_open()
  10.   Dim n As Integer
  11.   Dim sh As Worksheet
  12.   '統計本活頁簿共有幾個查詢物件!
  13.   For Each sh In ThisWorkbook.Worksheets
  14.     n = n + sh.QueryTables.Count
  15.   Next
  16.   ReDim qyts(1 To n) As New QytCls
  17.   Dim i As Integer
  18.   Dim qyt As QueryTable
  19.   For Each sh In ThisWorkbook.Worksheets
  20.     For Each qyt In sh.QueryTables
  21.       Set qyts(i + 1).qyt = qyt
  22.       qyts(i + 1).qname = sh.Name & " 的查詢 " & qyt.Name
  23.       i = i + 1
  24.     Next qyt
  25.   Next sh
  26. End Sub
複製代碼
附上上面程式碼所製作的範例!
作者: xisun2002    時間: 2010-11-28 18:50

感謝各位大大的大力幫助...3Q




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