VBA清零代碼的各種實戰寫法

在寫VBA代碼的時候,經常會用到清零。所謂清零就是清空數據。為什麼要清空數據呢?目的就是馬上要有新的數據填充進來,以免新填入的數據錯誤。如果你是VBA的新手,務必要養成這個習慣,當有新的數據填充時,在此前要將舊的數據清空,切記切記。

在實際的代碼書寫中,會用到各式各樣的方法進行數據的清空。下面就各個程序中的源代碼拿來和大家分享。由於是源代碼,只是截取了其中的部分,沒有涉及到其他的操作,代碼可能不能運行,如果要測試需要放在實際的代碼環境中。

代碼一:

20 Dim ws As Worksheet

21 Dim wb As Workbook

22 Set wb = ThisWorkbook '指定工作簿

23 Set ws = wb.Sheets("TT") '指定工作表名稱

24 HANG = "a2:P3000"

25 ws.Range(HANG).Clear

代碼講解:首先設定行單元格的範圍,然後CLEAR.

代碼二

20 Dim ws As Worksheet

21 Dim wb As Workbook

22 Set wb = ThisWorkbook '指定工作簿

23 Set ws = wb.Sheets("TT") '指定工作表名稱

24 HANG = "a2:P3000"

25 ws.Range(HANG). ClearContents

代碼講解: 首先設定行單元格的範圍,然後ClearContents

代碼三:

10 Sheets("TT").Selecct

11 Rows("3:200").Select

12 Selection.Delete

代碼講解:對固定的行數進行選擇,然後統統刪除,一了百了。

代碼四:

10 Dim ws As Worksheet

11 Dim wb As Workbook

12 Set wb = ThisWorkbook '指定工作簿

13 Set ws = wb.Sheets("cz") '指定工作表名稱

14 n = ws.Range("A65536").End(xlUp).Row

15 If n > 3 Then

16 HANG = "2:" & n

17 wb.Sheets("cz").Rows(HANG).ClearContents

18 End If

代碼講解:首先判斷非空的行數,然後再ClearContents

代碼五:

11 Sheets("TT").Selecct

12 Range("A2:j3000").Clear

代碼講解:直接對已知的區域進行CLEAR

上面分別講了五種常見代碼的寫法,這五種方法其實也有相同之處。不再多說,這裡再給大家講解的是如下幾點:

1 首先要判斷是對已知固定區域的清空還是非固定區域的清空。如果是已知的固定區域,直接就寫清區域範圍即可;如果是非固定區域,那麼就要判斷這個區域的範圍了,可以參考上面的代碼四。

2 清空的方法,無外乎三種,delete——很直接、乾淨、徹底地刪除一切數據,不拖泥帶水;clear——清除所選擇範圍內的數據及格式;ClearContents——清除所選擇範圍內的數據。

3 如果是刪除行,要判斷確實刪除的資料對於要錄入的資料沒有不良的影響。不要誤刪除。同時,如果採用的是循環語句,刪除後的行數變化要考慮到。

4 判斷要刪除或者清除的區域時,可以先判斷一下需要錄入的數據量多大,如果是小於3000行,那麼就直接錄入3000,可以避免再次的判斷,節約時間。

5 在清零處理的時候也要考慮到程序的可視性,增加select語句。

上述的幾點在寫程序時要特別的注意。

今日內容迴向:

1.VBA清空的代碼中核心步驟有兩個,哪兩個?

2.delete clear 有什麼不同?clear 和clear Contents有什麼不同?

3.delete 可以用clear代替嗎?反過來呢?

分享成果,隨喜正能量


分享到:


相關文章: