Board logo

標題: 進度條使用問題?(已解決) [打印本頁]

作者: vackbin    時間: 2011-5-9 06:01     標題: 進度條使用問題?(已解決)

本帖最後由 vackbin 於 2011-5-11 11:58 編輯

Dear 大大們

      小弟想製作一個進度條 , 旦發現我的動作是"取代"...似乎無法計數...
而且小弟表格共7千多個不規則欄位....不知如何算出總量阿@@

詳如附件...煩請大大幫幫手阿!!
[attach]6071[/attach]
作者: GBKEE    時間: 2011-5-9 06:45

本帖最後由 GBKEE 於 2011-5-9 06:58 編輯

回復 1# vackbin
  1. Sub test1()
  2.     UserForm1.Show
  3. End Sub
複製代碼
  1. Private Sub UserForm_Activate()
  2.     Dim I&
  3.     ProgressBar1.Max = ActiveSheet.UsedRange.Cells.Count
  4.     For I = 1 To ActiveSheet.UsedRange.Cells.Count
  5.         DoEvents
  6.         ProgressBar1 = I
  7.         ActiveSheet.UsedRange.Cells(I).Replace What:="C", Replacement:="A" ', LookAt:=xlPart, SearchOrder _
  8.         :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  9.     Next
  10.     MsgBox "更新完成!", vbInformation
  11.     Unload Me
  12. End Sub
複製代碼

作者: vackbin    時間: 2011-5-9 10:48

GBKEE 於 2011-5-9 06:58 編輯 !!!!!
G大真是早起阿!!
感謝大大這麼快就回應~~~小弟馬上試試!!
作者: vackbin    時間: 2011-5-9 11:31

Dear G大~~
小弟將部分錯誤刪除後,發現進度表並不會動~~
而且偵錯時發現 Unload Me的Me是不正確的關鍵字??
是我使用excel 2003版的關係嗎?
[attach]6077[/attach]
作者: GBKEE    時間: 2011-5-9 14:09

回復 4# vackbin
老弟: 這程式碼是要放在UserForm表單的程式碼
  1. Private Sub UserForm_Activate()
  2.     Dim I&
  3.     ProgressBar1.Max = ActiveSheet.UsedRange.Cells.Count
  4.     For I = 1 To ActiveSheet.UsedRange.Cells.Count
  5.         DoEvents
  6.         ProgressBar1 = I
  7.         ActiveSheet.UsedRange.Cells(I).Replace What:="1", Replacement:="A", LookAt:=xlPart, SearchOrder _
  8.         :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  9.     Next
  10.     MsgBox "更新完成!", vbInformation
  11.    Unload Me
  12. End Sub
複製代碼

作者: chin15    時間: 2011-5-9 19:02

用進度條會拖慢系統的

Replace方法本來瞬間就完成的
加上進度條必然慢下來了
作者: vackbin    時間: 2011-5-11 11:57

Dear G大~~
   測試後正確!!!!感謝您的指導~~~

TO chin15 ~~
因為工作上常需要取代這個動作~雖設計巨集讓同事使用~~
但是時間蠻久的常發生同事以為當機強制關閉造成錯誤~~
所以想做個進度條改善阿~~~
我只是小助手盡量幫幫他們的忙阿~~也讓我不要老做些除錯的事




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