根据TopHead大虾的观点,俺来为你写程序:
Private Type FileHead
    filename As String * 1024
    filelength As Long
End TypePrivate Sub Command1_Click()
    Dim vrSrcFiles(2)
    vrSrcFiles(0) = "c:\1.cll"
    vrSrcFiles(1) = "c:\a.cll"
    vrSrcFiles(2) = "c:\hehe.cll"
    
    MergeFilesToFile "c:\test.dat", vrSrcFiles
End SubPrivate Function MergeFilesToFile(szDestFile As String, vrSrcFiles As Variant) As Boolean
On Error GoTo Err_MergeFilesToFile
    If Not IsArray(vrSrcFiles) Then
        MergeFilesToFile = False
        Exit Function
    End If
    
    Dim iFiles As Integer
    iFiles = 0
    For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
        If Dir(vrSrcFiles(i)) <> "" Then
            iFiles = iFiles + 1
        End If
    Next
    If iFiles < 1 Then
        MergeFilesToFile = False
        Exit Function
    End If
    
    Open szDestFile For Binary As #1
    Put #1, , iFiles
    Dim recFileHead As FileHead
    For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
        If Dir(vrSrcFiles(i)) <> "" Then
            With recFileHead
                .filelength = FileLen(vrSrcFiles(i))
                .filename = vrSrcFiles(i)
            End With
            Put #1, , recFileHead
        End If
    Next
                
    Dim vrFileBuf() As Byte
    For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
        If Dir(vrSrcFiles(i)) <> "" Then
            If ReadFileToBuffer(vrSrcFiles(i), vrFileBuf) = True Then
                Put #1, , vrFileBuf
            End If
        End If
    Next
    
    Close #1
    MergeFilesToFile = True
Err_MergeFilesToFile:
    MsgBox Err.Description
    MergeFilesToFile = False
End FunctionPrivate Function SplitFileToFiles(szDestFile As String) As Boolean
On Error GoTo Err_SplitFileToFiles
    If Dir(szDestFile) = "" Then
        SplitFileToFiles = False
        Exit Function
    End If
    Open szDestFile For Binary As #1
    Dim iFiles As Integer
    Get #1, , iFiles
    If iFiles > 0 Then
        Dim arrFiles(iFiles) As FileHead
        For i = 1 To iFiles
            Get #1, , arrFiles(i)
        Next
        
        Dim vrFileBuf
        For i = 1 To iFiles
            ReDim vrFileBuf(arrFiles(i).filelength)
            Get #1, , vfFilebuf
            SaveBufferToFile arrFiles(i).filename, vrFileBuf
        Next
    End If
    Close #1
    SplitFileToFiles = True
    Exit Function
Err_SplitFileToFiles:
    MsgBox Err.Description
    SplitFileToFiles = False
End FunctionPrivate Function ReadFileToBuffer(ByVal szFile As String, vrBuf As Variant) As Boolean
On Error GoTo Err_ReadFileToBuffer
    If Dir(szFile) = "" Then
        ReadFileToBuffer = False
        Exit Function
    End If
    
    Dim lLen As Long
    lLen = FileLen(szFile)
    ReDim vrBuf(lLen)
    
    Open szFile For Binary As #2
        Get #2, , vrBuf
    Close #2
    ReadFileToBuffer = True
    Exit Function
Err_ReadFileToBuffer:
    ReadFileToBuffer = False
End FunctionPrivate Function SaveBufferToFile(ByVal szFile As String, ByRef vrBuf As Variant) As Boolean
On Error GoTo Err_SaveBufferToFile
    SaveBufferToFile = False
    If Trim(szFile) = "" Or IsNull(vrBuf) Then
        Exit Function
    End If
    Open szFile For Binary As #2
        Put #2, , vrBuf
    Close #2
    SaveBufferToFile = True
    Exit Function
Err_SaveBufferToFile:
    SaveBufferToFile = False
End Function