返回列表 上一主題 發帖

VBA 當2個條件一樣時,自動尋找輸入 2

本帖最後由 luhpro 於 2016-4-2 23:58 編輯

回復 1# man65boy
[Module]
  1. Public lRows&
  2. Public vDIO, vDPeo
複製代碼
[Sheet 主頁]
  1. Private Sub cbInput_Click()
  2.   UserForm1.Show
  3. End Sub
複製代碼
[ThisWorkbook]
  1. Private Sub Workbook_Open()
  2.   Dim lRow&
  3.   Dim sStr$
  4.   
  5.   Set vDIO = CreateObject("Scripting.Dictionary")
  6.   Set vDPeo = CreateObject("Scripting.Dictionary")
  7.   lRow = 2
  8.   While Cells(lRow, 1) <> ""
  9.     If Cells(lRow, 3) = "" Then
  10.       sStr = "O"
  11.     Else
  12.       sStr = "I"
  13.     End If
  14.     vDIO(CStr(Cells(lRow, 1) & "-" & Cells(lRow, 2))) = sStr
  15.     vDPeo(CStr(Cells(lRow, 1) & "-" & Cells(lRow, 2))) = lRow
  16.     lRow = lRow + 1
  17.   Wend
  18.     lRows = lRow - 1
  19. End Sub
複製代碼
[UserForm]
  1. Private Sub CommandButton1_Click()
  2.   Dim lRow&
  3.   
  4.   If TextBox1 = "" Then
  5.     MsgBox "你必須輸入 (車輛編號)"
  6.     Exit Sub
  7.   End If
  8.   
  9.   If TextBox2 = "" Then
  10.     MsgBox "你必須輸入 (司機人員)"
  11.     Exit Sub
  12.   End If
  13.   
  14.   lRow = vDPeo(CStr(TextBox1 & "-" & TextBox2))
  15.   If vDIO(CStr(TextBox1 & "-" & TextBox2)) = "O" Then ' 回來了
  16.     Cells(lRow, 3) = TextBox2
  17.     Cells(lRow, 5) = Now
  18.     Cells(lRow, 6) = ComboBox1.Text
  19.     vDIO(CStr(TextBox1 & "-" & TextBox2)) = "I"
  20.   Else ' 即將外出
  21.     lRows = lRows + 1
  22.     Cells(lRows, 1) = TextBox1
  23.     Cells(lRows, 2) = TextBox2
  24.     Cells(lRows, 4) = Now
  25.     vDIO(CStr(TextBox1 & "-" & TextBox2)) = "O"
  26.     vDPeo(CStr(TextBox1 & "-" & TextBox2)) = lRows
  27.   End If
  28. End Sub

  29. Private Sub UserForm_Initialize()
  30.   ComboBox1.AddItem "NO"
  31.   ComboBox1.AddItem "Yes"
  32.   ComboBox1.ListIndex = 0
  33. End Sub
複製代碼
請留意 : 主頁 的 輸入按鈕 我有重建成 cbInput 按鈕物件

20160331-A.zip (24.93 KB)

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題