返回列表 上一主題 發帖

可否請各位先進幫我簡化代碼

本帖最後由 register313 於 2011-12-28 14:09 編輯

回復 1# fyo00241
初學者VBA
使用FIND更好 但試不出來
  1. Private Sub EE()
  2. Application.ScreenUpdating = False
  3. Columns("E").Clear
  4. For a = 2 To 10000
  5.   For b = 2 To 26
  6.     If Cells(a, 1) = "" Then Exit For
  7.     If Cells(a, 4) Like Cells(b, 7) & "*" Then
  8.        Cells(a, 5) = Cells(b, 8)
  9.     End If
  10.   Next b
  11. Next a
  12. Application.ScreenUpdating = True
  13. End Sub
複製代碼

TOP

本帖最後由 register313 於 2011-12-29 08:29 編輯

回復 4# fyo00241
1. key條碼 key在何處? 作何判斷?
2.程式功能為何?
3.很慢是大約幾秒? 依實際需求大約要幾秒完成?
4.何不附上檔案?

TOP

回復 6# fyo00241
   依我看你是用表單一次輸入1個序號(D欄),然後查出1個品名(E欄)   ===>   需1t時間  
   而不是一次已有10000個序號(D欄),),然後一次查出10000個品名(E欄)   ===>   需10000t時間(當然會慢)
  
   依之前程式之寫法
  輸入第1個序號(查詢1個)  ===>   需1t時間
  輸入第2個序號(查詢2個)  ===>   需2t時間
  輸入第1000個序號(查詢1000個)  ===>   需1000t時間
  所以累積愈多序號 到時候執行速度就愈慢

  先看看附檔範例是不是你要的
  在D欄輸入序號,馬上查出品名
  只會查有D欄變動之序號,而不是每次都全部重查
  1. Private Sub worksheet_change(ByVal target As Range)

  2. If target.Column = 4 Then
  3.   a = target.Row
  4.   For b = 2 To 27
  5.     If Cells(a, 4) Like Cells(b, 7) & "*" Then
  6.        Cells(a, 5) = Cells(b, 8)
  7.     End If
  8.   Next b
  9. End If

  10. End Sub
複製代碼
新增Microsoft Excel 工作表.rar (6.59 KB)

TOP

回復 6# fyo00241

請問原來的程式是否能正常執行 好多地方有問題

只修正本帖所提之執行速度
試試看

日記帳記錄.zip (749.39 KB)

TOP

回復 14# fyo00241

是不是先把之前修改過的作個測試
說明一下功能有沒有問題(那邊有問題)  操作速度正不正常

TOP

回復 16# GBKEE


    自己改的 不知如何

日記帳記錄.rar (379.1 KB)

TOP

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題