返回列表 上一主題 發帖

儲存格比對後.導入滑鼠位置問題2

回復 1# BV7BW

儲存格位置導入 v1.zip (77.85 KB)

TOP

本帖最後由 singo1232001 於 2021-6-24 06:45 編輯
  1. Private Sub Worksheet_Change(ByVal Target As Range)   '儲存格改變時才會觸發 target 就是你原先變更資料的儲存格(不是新選到的)
  2. If Target.Count > 1 Then Exit Sub '選到兩格以上 強制結束(跑下去會出問題,本sub內的提到的"選到的格子"皆為尚未點擊之前選到的格子)
  3. If Target.Column <> 5 Then Exit Sub '選到不是第五欄 強制結束(跑下去會出問題)
  4. If Target.Row = 1 Then Exit Sub    '選到第一列 強制結束(跑下去會出問題)
  5. If Target.Value = "" Then Exit Sub '選到格子內無任何資料 強制結束(跑下去會出問題)

  6. Target.Font.ColorIndex = xlAutomatic '顏色變回黑

  7. Set s = ActiveSheet  '將工作表縮寫 後面使用縮寫方便
  8. On Error Resume Next '允許發生錯誤 不再跳出提示錯誤警告視窗
  9. f = 0              
  10. f = s.Columns("A:M").Find("*", searchdirection:=2).Row  '查找最後一列 , "*" 找尋A~M欄非空白有資料的格子 searchdirection:=2由下往上查找
  11. If f = 0 Then Exit Sub                '如果f還是0 代表沒資料 不跑
  12. On Error GoTo 0             '不允許發生錯誤 回復成提示錯誤警告視窗

  13. k = s.Cells(Target.Row, "K")  '查找該同一列的 k欄值
  14. x = 0  '紀錄加總用的x
  15. For i = 2 To f   '迴圈  (從第二列找到 最後一列)
  16. If Str(k) = Str(s.Cells(i, "K")) Then x = x + s.Cells(i, "H")   '找到相同的產品編號 將H欄值持續加總到x
  17. Next
  18. '到這邊已經加總完全同一個編號的數量
  19. Application.EnableEvents = False  '關閉事件觸發 以免連續影響 其他的觸發事件 selection 與 change
  20. For i = 2 To f
  21. If Str(k) = Str(s.Cells(i, "K")) Then s.Cells(i, "M") = x     '找到相同的產品編號 並且將加總好的x放到同一列的M欄
  22. Next
  23. Application.EnableEvents = True '重新開啟事件觸發
  24. Set s = Nothing  

  25. End Sub

  26. Private Sub Worksheet_SelectionChange(ByVal Target As Range) '儲存格點選時才會觸發 target 就是你當下點的儲存格(新選到的)
  27. If Target.Count > 1 Then Exit Sub '選到兩格以上 強制結束(跑下去會出問題)
  28. If Target.Row = 1 Then Exit Sub '選到第一列 強制結束(跑下去會出問題)
  29. If Target.Value = "" Then Exit Sub '選到格子內無任何資料 強制結束(跑下去會出問題)

  30. If Target.Column <> 16 Then Exit Sub '選到不是第P欄 強制結束(跑下去會出問題)

  31. Set s = ActiveSheet   '將工作表縮寫 後面使用縮寫方便
  32. On Error Resume Next '允許發生錯誤 不再跳出提示錯誤警告視窗
  33. f = 0
  34. f = s.Columns("K").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=1).Row  'searchdirection:=1由上往下查找 只找K欄 找到相同的編號
  35. If f = 0 Then Exit Sub '找不到符合項目 強制結束(跑下去會出問題)
  36. On Error GoTo 0

  37. Application.EnableEvents = False '關閉事件觸發
  38. s.Cells(f, "E").Select  '點選 找到的儲存格
  39. s.Cells(f, "E").Font.Color = -16776961 '並將顏色改為紅
  40. SendKeys "{F2}"   '並進入修改模式  f2本身為excel的 功能
  41. Application.EnableEvents = True  '重新開啟事件觸發
  42. Set s = Nothing
  43. End Sub
複製代碼
回復 3# BV7BW

TOP

回復 10# BV7BW


    補充 雙擊跟單擊 都可以自己決定更改
    T1儲存格可以改變你的需求

儲存格位置導入 v2.zip (78.49 KB)

TOP

本帖最後由 singo1232001 於 2021-6-25 13:43 編輯

回復 17# BV7BW


    這個蠻好玩的  幫我突破了一個寫法 也釐清了一些思路

    這個寫法我第一次寫 我猜裡面可能會有bug 但目前還不確定

    目前的缺點是無法復原

儲存格位置導入 v3.zip (84.05 KB)

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題