返回列表 上一主題 發帖

格式比對

格式比對

各位大大好~

有一個問題想請教,如何使用vba比對2個儲存格內容
比如  a   b  c  欄中各有資料但並非全數都有資料,可否做到 如果a內無資料 而c內有資料就刪除該列所有資料,
a欄內有資料c欄內也有資料就跳過檢查下一列
此動作於前置其它動作完成之後才進行而非一啟動立即執行,因有部份資料可能在前置動作中會加入需於最後
才作動,謝謝大大版的指導。

回復 1# ayubbs
  1. Sub ex()
  2. If Application.CountA([C:C]) = 0 Then Exit Sub 'C欄沒有任何資料就結束程序
  3. For Each A In Range("C:C").SpecialCells(xlCellTypeConstants) '遍歷C欄所有資料
  4.   If A.Offset(, -2) = "" Then A.Clear 'A欄為空白就清除C欄
  5. Next
  6. End Sub
複製代碼
學海無涯_不恥下問

TOP

01.gif 回復 2# Hsieh

感謝指導,在使用時發生錯誤有以下訊息



大大所使用的方式是否為a欄中某格無值清除該列除料,但若想將其變成刪除該列避免產空的一列資料不好看,又該如何使用

謝謝

TOP

回復 3# ayubbs
  1. Sub ex()
  2. Dim A as Range
  3. If Application.CountA([C:C]) = 0 Then Exit Sub 'C欄沒有任何資料就結束程序
  4. For Each A In Range("C:C").SpecialCells(xlCellTypeConstants) '遍歷C欄所有資料
  5.   If A.Offset(, -2) = "" Then A.Clear 'A欄為空白就清除C欄
  6. Next
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 4# Hsieh

謝謝版大已可正常執行,如條件符合,那可否改成刪除列,而不是只清除C欄內的值

TOP

回復 5# ayubbs
  1. Sub ex()
  2. Dim A As Range, Rng As Range
  3. If Application.CountA([C:C]) = 0 Then Exit Sub 'C欄沒有任何資料就結束程序
  4. For Each A In Range("C:C").SpecialCells(xlCellTypeConstants) '遍歷C欄所有資料
  5.   If A.Offset(, -2) = "" Then
  6.     'A.Clear 'A欄為空白就清除C欄
  7.     If Rng Is Nothing Then Set Rng = A.EntireRow Else Set Rng = Union(Rng, A.EntireRow)
  8.   End If
  9. Next
  10. Rng.Delete
  11. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 6# Hsieh


   真是太感謝~太好用了....

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題