VBA邮件合并,其中包含特定值的行

时间:2019-03-06 14:27:58

标签: excel vba ms-word ms-office mailmerge

我正在尝试基于具有以下基本结构的Excel文件创建一个批量处理器:

ID   Name   Street   Info... 

12   John   XXX      YYY

13   Mark   YYY      ZZZ

14   Hunter OOO      NNN

ID,名称,街道和信息在此处用作列。

要创建和导出PDF中的完整字母,我声明一个常量StartWith和EndWith,它们采用相应行的值。基本的VBA代码如下所示(其中不包括导出步骤,仅包含开始和结束值的必要部分):

startWith = 1    
endWith = 3
counter = startWith


With ActiveDocument.MailMerge    
    .DataSource.ActiveRecord = startWith    
    Do
        With .DataSource
            .FirstRecord = .ActiveRecord
            .LastRecord = .ActiveRecord
        End With
        .Execute Pause:=False

        ActiveDocument.SaveAs FileName:=sLetter, FileFormat:=wdFormatPDF      
        ActiveDocument.Close False

        If .DataSource.ActiveRecord < .DataSource.RecordCount And counter <= endWith Then
            .DataSource.ActiveRecord = wdNextRecord
            counter = counter + 1
        Else
            Exit Do
        End If
    Loop
End With

If DataSource.ActiveRecord < DataSource.RecordCount Then
DataSource.ActiveRecord = wdNextRecord

Else

End If

我不想声明一个独立的StartWith和EndWith,而是将StartWith和EndWith的值设置为ID列的某个值,这样我就可以从ID 13开始并在15结束,例如而不是将StartWith定义为相应的行号。有没有一种方法可以在VBA中实现?

感谢您的帮助,非常感谢!

0 个答案:

没有答案