Board logo

標題: VBA 當2個條件一樣時,自動尋找輸入 2 [打印本頁]

作者: man65boy    時間: 2016-3-31 11:55     標題: VBA 當2個條件一樣時,自動尋找輸入 2

當工作表上有"車輛編號"A201603030015和"司機(1)"黑松和"司機(2)"黑松時,這代表他已經送貨回來了,但因為他在不同樣的時間又出去送貨,所以還要再次輸入"車輛編號"A201603030015和"司機(1)"黑松,這個資料還要依序在A欄和B欄上轉寫,當他又送貨完回來時,又要回到只能在C欄產生B欄對應的資料,(新增F欄為TextBox3 所填入的資料)也跟著回車輸入進去,麻煩老師在費心了,謝謝!
覆檔:[attach]23663[/attach]
作者: luhpro    時間: 2016-4-2 23:57

本帖最後由 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 按鈕物件

[attach]23687[/attach]
作者: man65boy    時間: 2016-4-3 11:50

回復 2# luhpro

感謝luhpro老師的答覆,完美好實用,真的很謝謝!




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