2014年5月28日 星期三

[Excel Macro 巨集] 清除含有特定字眼的儲存格

因工作需要,小莎被要求把 Excel 檔案裡面,含有某字眼的儲存格內容全部清除,因為不能只拿掉某字眼,所以不能用全部取代來達成任務,面對數萬筆的資料,一個一個拿會暈倒,這時候就只能用下面這個 Macro 來達陣囉!

在儲存格 F1 F100000 S1 S100000 的範圍,清除含有 1234 的所有儲存格內容
-------------------------------
1.          Sub Remove_PII()
2.          Dim myRange As Range
3.          Dim myCell As Range
4.          Set myRange = Range("F1:F100000,S1:S100000")
5.          For Each myCell In myRange
6.          If myCell Like "*1234*" Or _
7.          myCell Like "*otherword*" Then
8.          myCell.ClearContents
9.          End If
10.      Next myCell
11.      End Sub
-------------------------------

[Excel Macro 巨集] 自動填滿

操作 Excel 表格時,常常利用在格子右下角出現十字時,點兩下,下面的格子就會自動填滿公式或數值到與左邊格子一樣的列數,相同的操作,若使用 Macro 錄製功能,就會產生與下面類似的程式碼,用 Range 去指定自動填滿的範圍。

-----------------------------------
Sub Macro1()
    Range("C2").Select
    Selection.Autofill Destination:=Range("C2:C11")
End Sub
-----------------------------------

但是,很多時候,每個檔案的資料數量不同,即使是相同格式的表格,要執行自動填滿的範圍也不同,若要成功執行自動填滿所有資料,就需要每次改程式碼的範圍,這時候就可以使用下面的程式碼,來解決這個問題 (紅色部分隨著資料表格式不同修改)

[Excel Macro 巨集] 選取任意文字檔匯入 Excel

若使用 Macro 錄製的功能來產生 Macro,就會得到與下面左邊格子類似的程式碼,連結到特定路徑裡面的特定檔案,這樣的程式碼可以成功運作,但很麻煩的是,每次都要將要匯入的檔案改成特定檔名,放到特定路徑下面,才能成功把文字檔匯進 Excel。

若是要能夠開啟視窗匯入不同路徑/檔名的文字檔,只要在錄製後,把紅色部分的程式碼修改成右邊格子裡紅色的部分,之後就可以選擇匯入任意文字檔。