返回列表 上一主題 發帖

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

本帖最後由 fyo00241 於 2011-12-30 00:36 編輯
回復  fyo00241

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

只修正本帖所提之執行速度
試試看
...
register313 發表於 2011-12-29 18:52


大大我無法下載附件......
fyo00241@gmail.com也無法發短消息@_@

TOP

大大我無法下載附件......
也無法發短消息@_@
fyo00241 發表於 2011-12-29 21:42

感謝大大,目前我會測試一下,文件我收到了,謝謝喔!!

TOP

本帖最後由 GBKEE 於 2012-1-1 09:39 編輯

回復 10# fyo00241
簡化 UserForm1
  1. Private Sub ComboBox2_Change()
  2.    If ComboBox2 <> "" Then Sheets(ComboBox2.Text).Select  '將工作表移到 ComboBox2
  3. End Sub
  4. Private Sub cmdOK_Click()
  5.     Dim Msg As String, t, s, 序號, 品名
  6.    '序號 ,品名 也可key好置於工作表 用於搜尋對照
  7.    序號 = Array(201106, 201101, 201111, 201102, 201103, 201127, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120)
  8.    
  9.    品名 = Array("手打鐘Ⅰ", "手打鐘", "手打鐘Ⅱ", "手打鐘", "手打鐘", _
  10.         "T27印表機", "中文鴿鐘", "英文鴿鐘", "中文語音鴿鐘", "英文語音鴿鐘", "中文語音鴿鐘(G)", _
  11.         "英文語音鴿鐘(G)", "凹槽", "CI", "單格15PIN", "單格9PIN", "四合一15PIN-E", "四合一15PIN-EL", _
  12.         "四合一9PIN", "GPS(方形)", "525電匠", "747電匠", "T+1感應板", "傳訊機5V", "傳訊機非5V", "UID讀碼機")
  13.    '***  防呆
  14.     If ComboBox2 = "" Then Msg = "地區單位 未選擇 !!!"
  15.     If in1 = False And out1 = False Then Msg = IIf(Msg = "", "出貨情況 未選擇 !!!", Msg & Chr(10) & "出貨情況 未選擇 !!!")
  16.      
  17.     t = Application.Match(Val(Mid(TextBox1, 1, 6)), 序號, 0)     '先找6位
  18.     If IsError(t) Then t = Application.Match(Val(Mid(TextBox1, 1, 4)), 序號, 0)        '後找4位
  19.     If Not IsError(t) Then s = 品名(t - 1)
  20.     If IsError(t) Then Msg = IIf(Msg = "", "序號錯誤:  找不到 品名 ???", Msg & Chr(10) & "序號錯誤:  找不到 品名 ???")
  21.     If Msg <> "" Then
  22.         MsgBox Msg
  23.         Exit Sub
  24.     End If
  25.     '***  防呆結束
  26.     With Cells(Rows.Count, "A").End(xlUp).Offset(1)   '工作表(ComboBox2)
  27.         .Offset(0, 0) = abcName.Value
  28.         .Offset(0, 1) = ComboBox2.Value
  29.         .Offset(0, 2).Value = IIf(in1 = True, "收回", "發出")
  30.         .Offset(0, 3) = TextBox1.Value
  31.         .Offset(0, 4) = s
  32.    End With
  33. End Sub
複製代碼
各單位工作表的Worksheet_Change 可刪除置於ThisWorkbook 中
  1. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  2.     Dim rng As Range, i As Long, r
  3.     If Sh.Index > 3 Then   ' Index  各單位工作表於活頁簿的排序位置
  4.         r = isTrue(Target.Value, getRangeString)
  5.         If r(0) Then MsgBox "" & r(1) & "表中已經有了!"
  6.         With Target
  7.             If .Column = 1 Or .Column = 3 Or .Column = 4 Then
  8.                 If Cells(.Row, 1) <> "" And Cells(.Row, 3) <> "" And Cells(.Row, 4) <> "" Then
  9.                     For i = 2 To Cells(Rows.Count, .Column).End(xlUp).Row
  10.                         If Cells(i, 1) = Cells(.Row, 1) And Cells(i, 3) = Cells(.Row, 3) And Cells(i, 4) = Cells(.Row, 4) And i <> .Row Then
  11.                             If rng Is Nothing Then
  12.                                 Set rng = Union(Cells(i, 1), Cells(i, 3), Cells(i, 4))
  13.                             Else
  14.                                 Set rng = Union(rng, Cells(i, 1), Cells(i, 3), Cells(i, 4))
  15.                             End If
  16.                         End If
  17.                     Next
  18.                     If Not rng Is Nothing Then
  19.                         Set rng = Union(rng, Cells(i, 1), Cells(.Row, 3), Cells(.Row, 4))
  20.                         rng.Select
  21.                         MsgBox Cells(.Row, 1) & "  " & Cells(.Row, 3) & "  " & Cells(.Row, 4) & "  有重複檢查一下!!"
  22.                     End If
  23.                 End If
  24.             End If
  25.         End With
  26.     End If
  27. End Sub
複製代碼

TOP

回復  fyo00241
簡化 UserForm1各單位工作表的Worksheet_Change 可刪除置於ThisWorkbook 中
GBKEE 發表於 2012-1-1 09:31


感謝大大幫忙,又學了很多,我來試看看,,希望可以再幫我看一下那裡要改的...先謝謝了!!

TOP

回復 14# fyo00241

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

TOP

本帖最後由 GBKEE 於 2012-1-3 08:24 編輯

回復 15# register313
說明一下功能有沒有問題(那邊有問題)  操作速度正不正常
樓主檔案較大,所以執行程式速度會慢一些.不瘦身是不會快的.
建議樓主將所有資料置於一個資料庫(如:日記帳)

TOP

回復 16# GBKEE


    自己改的 不知如何

日記帳記錄.rar (379.1 KB)

TOP

回復 17# register313
依原檔案               陣列比對 約1.05秒 ,  工作表比對  約1.09秒
刪除剩15資料表   陣列比對 約0.22秒 ,  工作表比對  約0.25秒
刪除剩 1 資料表   陣列比對 約0.093秒 ,  工作表比對  約0.12秒

TOP

回復  fyo00241

是不是先把之前修改過的作個測試
說明一下功能有沒有問題(那邊有問題)  操作速度正不正 ...
register313 發表於 2012-1-2 23:39


大大你之前改的我測了一下可以的速度可以接受了!!

TOP

回復  register313
說明一下功能有沒有問題(那邊有問題)  操作速度正不正常
樓主檔案較大,所以執行程式速 ...
GBKEE 發表於 2012-1-3 08:22


大大你說的資料庫部份是如何做較好呢??

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題