在几个form中都有mshflesgrid,也都有另存的按键,我做了一个子程序来做另存这个动作,但是在传递参数的时候出了问题, 
(MSHFlexGrid1的DateSource都是绑定的)
调用 
call excelsave(me.MSHFlexGrid1) 
子程序
Public Sub excelsave(Flex as MSHFlexGrid) 
Set xlapp = CreateObject("Excel.Application") 
Set xlbook = xlapp.Workbooks.Add 
Set xlsheet = xlbook.Worksheets(1) For k = 1 To Flex.Cols - 1 
xlsheet.Cells(1, k) = Flex.TextMatrix(0, k)  '设置标题 
Next k 
xlsheet.range("a2").CopyFromRecordset Flex.DateSource  '批量导入 
xlapp.Visible = True 
xlapp.Workbooks.Close 
xlapp.Quit 
Set xlapp = Nothing 
End Sub 
设置标题时没有问题,为什么批量导入时报错:无效的过程调用或参数。

解决方案 »

  1.   

    Public Sub excelsave(byref Flex as MSHFlexGrid) 
    试一下
      

  2.   

    试过了,还是不行,虽然Flex.TextMatrix(i, k)有值,但Flex.DateSource总是为null,而我不想逐个cell填写,拜托各位有什么高招啊
      

  3.   

    MSHFlexGrid和什么绑定?
    设成绑定的记录集不就可以了
      

  4.   

    在调用的那个form中
    set MSHFlexGrid1.DateSource=rs
    然后就已经
    rs.close
    之所以要释放rs,是因为不同的几个form中都需要用rs,不想打开太多,就及时关闭了