標題:
[發問]
匯入外部資料問題
[打印本頁]
作者:
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
Sub Ex()
Dim Sh As Worksheet, Query As QueryTable
For Each Sh In ThisWorkbook.Worksheets
For Each Query In Sh.QueryTables
Query.Refresh 0 'BackgroundQuery:=False
Next
Next
End Sub
複製代碼
作者:
沙拉油
時間:
2010-11-26 16:35
本帖最後由 沙拉油 於 2010-11-26 16:45 編輯
一個物件類別、一個模組
貼上程式碼之後得重新開啟檔案
'物件類別模組 QytCls 的程式碼
Public WithEvents qyt As QueryTable
Public qname As String
Private Sub qyt_AfterRefresh(ByVal Success As Boolean)
MsgBox qname & " 更新結束!"
End Sub
'模組 Module1 的程式碼
Dim qyts() As New QytCls
Private Sub auto_open()
Dim n As Integer
Dim sh As Worksheet
'統計本活頁簿共有幾個查詢物件!
For Each sh In ThisWorkbook.Worksheets
n = n + sh.QueryTables.Count
Next
ReDim qyts(1 To n) As New QytCls
Dim i As Integer
Dim qyt As QueryTable
For Each sh In ThisWorkbook.Worksheets
For Each qyt In sh.QueryTables
Set qyts(i + 1).qyt = qyt
qyts(i + 1).qname = sh.Name & " 的查詢 " & qyt.Name
i = i + 1
Next qyt
Next sh
End Sub
複製代碼
附上上面程式碼所製作的範例!
作者:
xisun2002
時間:
2010-11-28 18:50
感謝各位大大的大力幫助...3Q
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)