snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
รบกวนสอบถามครับอาจารย์ ผมงงมากกับการ Add Userform Progress Bar แล้วสั่งให้มันทำงาน ระหว่างการ Refresh Data Web Query รบกวนช่วยแนะนำหรือช่วยปรับ Code ให้หน่อยนะครับ
Sub code()
Dim wks As Worksheet
Dim qt As QueryTable
Dim lo As ListObject
Dim pctCompl As Single
For Each wks In Worksheets
For Each qt In wks.QueryTables
qt.Refresh BackgroundQuery:=False
Next qt
For Each lo In wks.ListObjects
lo.QueryTable.Refresh BackgroundQuery:=False
Next lo
Next wks
Set qt = Nothing
Set wks = Nothing
pctCompl = lo
progress pctCompl
End Sub
Sub code()
Dim wks As Worksheet
Dim qt As QueryTable
Dim lo As ListObject
Dim pctCompl As Single
Dim i As Integer, total_lo As Long
totalQt = Count_Qt(qt)
For Each wks In Worksheets
For Each qt In wks.QueryTables
qt.Refresh BackgroundQuery:=False
i = i + 1
Next qt
For Each lo In wks.ListObjects
lo.QueryTable.Refresh BackgroundQuery:=False
Next lo
If i > 0 Then
UserForm1.Text.Caption = 100 * (i / totalQt) & "% Completed"
UserForm1.Bar.Width = UserForm1.Frame1.Width * i / totalQt
End If
Next wks
Set qt = Nothing
Set wks = Nothing
' pctCompl = lo
' progress pctCompl
End Sub
Function Count_Qt(objQt As Object) As Long
Dim sh As Worksheet
For Each sh In Worksheets
For Each objQt In sh.QueryTables
Count_Qt = Count_Qt + 1
Next objQt
Next sh
End Function