Board logo

標題: 關於工作頁右鍵重新整理 [打印本頁]

作者: EGBT    時間: 2016-4-28 10:56     標題: 關於工作頁右鍵重新整理

如標題:關於工作頁右鍵重新整理

想在這裡請教各位大大

假如我有3個工作表,在工作表上按右鍵重新整理,要如何知道已經更新完畢?或更新失敗?

完成之後換下個工作表呢?

麻煩各位大大指教~感恩!
作者: GBKEE    時間: 2016-4-29 07:06

回復 1# EGBT
試試看
ThisWorkbook模組的程式碼
  1. Option Explicit
  2. Public MSG As String
  3. '在Workbook任一工作表上按右鍵 "的預設事件
  4. Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  5.     Cancel = True  '不顯示工作表上按下右鍵所顯示功能表
  6.     EX
  7. End Sub
  8. Private Sub EX()   ' 更新外部查詢的程式
  9.     Dim Sh As Worksheet, q As QueryTable
  10.     Dim Sh_Table As New Class1 '  Class1 物件類別模組的名稱
  11.     MSG = ""
  12.     For Each Sh In Sheets(Array("Sheet1", "Sheet2", "Sheet3")) '假如我有3個工作表
  13.    'For Each Sh In Sheets '所有工作表
  14.         If Sh.QueryTables.Count > 0 Then
  15.             For Each q In Sh.QueryTables
  16.                 Set Sh_Table.XQueryTable = q  '查詢表 設為 物件類別的物件
  17.                 q.Refresh False
  18.             Next
  19.         End If
  20.     Next
  21.     If MSG <> "" Then
  22.         MsgBox MSG
  23.     Else
  24.         MsgBox Me.Name & " 沒有外部查詢"
  25.     End If
  26. End Sub
複製代碼
物件類別模組[Class1]的程式碼
  1. Option Explicit
  2. Public WithEvents XQueryTable As QueryTable
  3. Private Sub XQueryTable_AfterRefresh(ByVal Success As Boolean)
  4.     ThisWorkbook.MSG = ThisWorkbook.MSG & IIf(ThisWorkbook.MSG <> "", vbLf, "") & XQueryTable.Parent.Name & "-" & XQueryTable.Name & "更新 " & IIf(Success, "成功", "失敗")
  5. End Sub
複製代碼

作者: EGBT    時間: 2016-5-6 12:03

回復 2# GBKEE


    感謝大大的分享...話說大大...您為什麼都會完整地回復...




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