萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Word 教學 >> Word 使用技巧

Word VBA RecordCount 屬性:取得郵件合併資料來源筆數範例

屬性說明

  • 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

程式碼邏輯解析

  1. 設定錯誤處理 → 進入資料來源物件。
  2. 游標移至第一筆(wdFirstRecord)。
  3. 迴圈逐筆檢查:DataFields(6) 為第 6 欄位(郵遞區號)。
  4. 長度 < 5 → 設 Included=False 排除合併,並標記 InvalidAddress、寫入備註。
  5. 若非最後一筆(ActiveRecord <> RecordCount)→ 移至下一筆(wdNextRecord)。
  6. 迴圈條件:直到目前記錄號 = 總筆數(RecordCount)。

擴充應用

  • 若郵遞區號為 **5+4 碼**(共 10 碼),將長度判斷改為 `< 10`。
  • 搭配 DataFields("ZIP").Value 使用欄位名稱而非索引,程式碼更易讀維護。
  • 可在迴圈中累計有效/無效筆數,最後用 MsgBox 報告統計結果。

注意事項

  • 需在**已連結資料來源**的郵件合併主文件中執行。
  • RecordCount 回傳 -1 時,迴圈條件會失效,建議改用 ActiveRecord = wdLastRecord 判斷結束。
  • 修改 Included、InvalidAddress 等屬性會即時影響合併結果,執行前請備份文件。
copyright © 萬盛學電腦網 all rights reserved