Public Sub CopyBatch()
    Dim oBatch As CBatchAPI
    Dim oTemplate As CBatchAPI

    Set oBatch = New CBatchAPI
    Set oTemplate = New CBatchAPI

    oBatch.Init REApplication.SessionContext
    oTemplate.Init REApplication.SessionContext
   
    oTemplate.LoadByNumber "28"
   
    Dim oTemplateFields As CBatchFields
    Dim oBatchFields As CBatchFields

    Set oTemplateFields = oTemplate.BatchFields
    Set oBatchFields = oBatch.BatchFields
   
    Dim oField As CBatchField
    For Each oField In oTemplateFields
        SetupBatchField oBatchFields.Add, oField.Fields(BatchField_fld_FieldNumber)
    Next
   
    oBatch.Save
    oBatch.CloseDown
    oTemplate.CloseDown
   
    Set oBatch = Nothing
    Set oBatchFields = Nothing
    Set oTemplate = Nothing
    Set oTemplateFields = Nothing
End Sub

Disclaimer: We provide programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes you are familiar with Microsoft Visual Basic and the tools used to create and debug procedures. Blackbaud Customer Support may help explain the functionality of a particular procedure, but we will not modify, or assist you with modifying, these examples to provide additional functionality.