返回列表 上一主題 發帖

[發問] 請問沿用舊表格,若將A1資料刪除,B1及C1...以後的儲存格資料是否可以 跟著消失

回復 6# ClareWu
清空的問題用vba解決
sheet1模組
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. Application.EnableEvents = False
  4. If Target.Column = 1 And Target = "" Then Target.EntireRow = "" '整列清空
  5. Application.EnableEvents = True
  6. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 8# mistery
不建議這樣做法
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim A As Range, B As Range, Rng As Range, MyStr$
  3. If Target.Count > 1 Then Exit Sub
  4. Application.EnableEvents = False
  5. If Target.Column = 1 And Target = "" Then
  6. Target.EntireRow = "" '整列清空
  7. ElseIf Target.Column = 1 And Target <> "" Then
  8. Set A = Sheet2.Columns("A").Find(Target, lookat:=xlWhole)
  9. k = Application.CountA(A.EntireRow)
  10. MyStr = Join(Application.Transpose(Application.Transpose(A.Offset(, 1).Resize(, k - 1))), ",")
  11. With Target.Offset(, 1).Validation
  12. .Modify 3, , , MyStr
  13. End With
  14. ElseIf Target.Column = 2 And Target <> "" Then
  15. Set A = Sheet3.Columns("A").Find(Target.Offset(, -1), lookat:=xlWhole)
  16. Set B = Sheet3.Columns("A:B").Find(Target, after:=A, lookat:=xlWhole)
  17. Set Rng = Sheet3.Range(B.Offset(, 1), B.End(xlToRight))
  18. If Rng.Count = 1 Then MyStr = Rng Else MyStr = Join(Application.Transpose(Application.Transpose(Rng)), ",")
  19. With Target.Offset(, 1).Validation
  20. .Modify 3, , , MyStr
  21. End With
  22. End If
  23. Application.EnableEvents = True
  24. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 11# ClareWu

用一個只是看不見B,C欄資料的方法
選取B,C欄,設定格式化條件
學海無涯_不恥下問

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題