屬性說明
RecordCount 回傳 Long 整數,代表郵件合併資料來源中的**記錄總數**。
- 唯讀屬性;若 Word 無法判斷筆數(如某些 OLEDB/ODBC 來源),回傳 -1。
- 語法:
expression.RecordCount,expression 為 MailMergeDataSource 物件。
完整程式碼範例:驗證郵遞區號長度並排除不合格記錄
On Error GoTo ErrorHandler
With ActiveDocument.MailMerge.DataSource
.ActiveRecord = wdFirstRecord
Do
' 第 6 個欄位為郵遞區號,檢查長度是否 < 5
If Len(.DataFields(6).Value) < 5 Then
.Included = False ' 從合併中排除
.InvalidAddress = True ' 標記為無效地址
.InvalidComments = "The zip code for this record" & _
"is less than five digits. This record is" & _
"removed from the mail merge process."
End If
' 尚未到最後一筆則移至下一筆
If .ActiveRecord <> .RecordCount Then
.ActiveRecord = wdNextRecord
End If
Loop Until .ActiveRecord = .RecordCount
ErrorHandler:
End With
程式碼邏輯解析
- 設定錯誤處理 → 進入資料來源物件。
- 游標移至第一筆(
wdFirstRecord)。
- 迴圈逐筆檢查:
DataFields(6) 為第 6 欄位(郵遞區號)。
- 長度 < 5 → 設
Included=False 排除合併,並標記 InvalidAddress、寫入備註。
- 若非最後一筆(
ActiveRecord <> RecordCount)→ 移至下一筆(wdNextRecord)。
- 迴圈條件:直到目前記錄號 = 總筆數(
RecordCount)。
擴充應用
- 若郵遞區號為 **5+4 碼**(共 10 碼),將長度判斷改為 `< 10`。
- 搭配
DataFields("ZIP").Value 使用欄位名稱而非索引,程式碼更易讀維護。
- 可在迴圈中累計有效/無效筆數,最後用
MsgBox 報告統計結果。
注意事項
- 需在**已連結資料來源**的郵件合併主文件中執行。
RecordCount 回傳 -1 時,迴圈條件會失效,建議改用 ActiveRecord = wdLastRecord 判斷結束。
- 修改
Included、InvalidAddress 等屬性會即時影響合併結果,執行前請備份文件。