返回列表 上一主題 發帖

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

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

:dizzy:
請問若我沿用舊表格來key 入新資料
而我原有表格中,儲存格都是有資料驗證的
當我將A1表格的資料清除時,B1,C1....後面儲存格中的資料依然存在
我想知道可不可能當我A1儲存格中資料清除後,後面的儲存格也自動跟著清除
謝謝各位先進

回復 11# ClareWu

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

TOP

回復 10# Hsieh


    謝謝  Hsieh 版主  
    真的有很聰明的方法來完成"清單"的工作 ....
    (要花時間來消化您的VBA碼了)(現在是邊看實例邊學...)

TOP

謝謝版主 and  Mistery
1. 但是要辜負版主,因為我還不懂VBA
2. Mistery,我還是不能開你的檔案
不過看起來,不用VBA好像無法解決我的問題

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

本帖最後由 mistery 於 2010-12-21 16:44 編輯

回復 ClareWu


     (更新附件    之前的不小心加密了  再把 Hsieh 版主寫的自動清除 VBA 加進去)

      地址.zip (48.81 KB)

TOP

回復 7# Hsieh

借題...請問 Hsieh 版主 ...該怎樣用VBA 去快速命名清單?(以此案為例)

TOP

回復 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

我不能開您的附檔,太菜了
用indirect跟用offset去命名清單有很大差異嗎?
因為我用offset去命名清單也是要手動逐一命名

TOP

[版主管理留言]
  • Hsieh(2010-12-21 15:17): 上傳壓縮檔請勿使用密碼

回復 4# ClareWu


    清單的部份  可用 indirect() 函數
    做了一個小小範例  (不過我是用手動逐一命名清單)

    當A1改變時  自動清除 B1 C1  就要用到 VBA 囉 (Worksheet_SelectionChange )
   

    地址.zip (46.63 KB)

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題