Board logo

標題: 格式比對 [打印本頁]

作者: ayubbs    時間: 2013-8-22 00:05     標題: 格式比對

各位大大好~

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

回復 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
複製代碼

作者: ayubbs    時間: 2013-8-22 10:58

[attach]15831[/attach]回復 2# Hsieh

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

[attach]15831[/attach]

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

謝謝
作者: Hsieh    時間: 2013-8-22 13:28

回復 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
複製代碼

作者: ayubbs    時間: 2013-8-22 13:38

回復 4# Hsieh

謝謝版大已可正常執行,如條件符合,那可否改成刪除列,而不是只清除C欄內的值
作者: Hsieh    時間: 2013-8-22 13:47

回復 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
複製代碼

作者: ayubbs    時間: 2013-8-22 14:08

回復 6# Hsieh


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




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