借助Automation你可以实现数据传递，下面是一个简单的例子： 
    Dim ExcelApp As Object 
     
    Private Sub Command1_Click() 
     Dim i 
     
     Set ExcelApp = CreateObject("excel.application") 
     
     ExcelApp.Workbooks.Add 
     i = 1 
     While Not Data1.Recordset.EOF 
     ExcelApp.Range("a" & i).Value = Data1.Recordset("CategoryName") 
     i = i + 1 
     Data1.Recordset.MoveNext 
     Wend 
     ExcelApp.Visible = True 
    End Sub 
<END>    
在VB中编写Excel的外接程序Addin,生成一个 Dll文件,在这个Addin中,用ADO或DAO读取Access，和一般方法无异。注册Dll后,在Excel的Com Addins列表中出现这个Addin，加载该Addin，发生OnConnection事件，该事件有一个参数Application,就是Excel事例，可据次编写代码将Access数据填到Excel单元格中。 
    如果你用VBA编写宏,就不能编译成DLL,除非安装office developer tools。Com Addin比Automation效率更高。 
<END>    
有一个更好些的办法,就是用xSheet.Range("A1").CopyFromRecordset RS 
    这样可以将一个DAO的Recordset直接拷贝到指定开始的单元格中. 
<END>