2012年1月25日 星期三

VBA-將所有沒有內容的儲存格中的『空白』刪除


Rem <summary>
Rem 將所有沒有內容的儲存格中的『空白』刪除
Rem <param name="tcSheetName">Sheet名稱</param>
Rem <returns>True:通過檢查,False:未通過檢查</returns>
Function clearCellBlank(tcSheetName As String) As Boolean

    '取得指定Sheet己使用的區域
    Dim myRange As Range
    Set myRange = Worksheets(tcSheetName).UsedRange
         
    '刪除曾經有被使用過的區域中只有『空白』的儲存格
    Dim lnI As Integer
    Dim lnJ As Integer
    Dim lnStartRow As Integer
    Dim lnStartColumn As Integer
    Dim lnRowCount As Integer
    Dim lnColumnCount As Integer
 
    lnStartRow = myRange.Row '曾經有被使用過的區域的第一列
    lnStartColumn = myRange.Column '曾經有被使用過的區域的第一欄
    lnRowCount = myRange.Rows.Count '曾經有被使用過的區域的列數量
    lnColumnCount = myRange.Columns.Count '曾經有被使用過的區域的行數量
 
    For lnI = 0 To lnRowCount - 1
        For lnJ = 0 To lnColumnCount - 1
     
            '如果儲存格為空白,則將空白去除,改為Null
            If (Trim(Worksheets(tcSheetName).Cells(lnStartRow + lnI, lnStartColumn + lnJ)) = "") And _
               (Not IsNull(Worksheets(tcSheetName).Cells(lnStartRow + lnI, lnStartColumn + lnJ))) Then
             
                Worksheets(tcSheetName).Cells(lnStartRow + lnI, lnStartColumn + lnJ) = Null
         
            End If
         
        Next lnJ
    Next lnI

End Function