我使用下面的过程来作的:
Public Sub OutDataToExcel(Flex As MSFlexGrid)    '导出至Excel
    Dim s As String
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    On Error GoTo Ert
    Me.MousePointer = 11
    Dim Excelapp As Excel.Application
    Set Excelapp = New Excel.Application
    On Error Resume Next
    DoEvents
    Excelapp.SheetsInNewWorkbook = 1
    Excelapp.Workbooks.Add
    Excelapp.ActiveSheet.Cells(1, 3) = s
    Excelapp.Range("C1").Select
    Excelapp.Selection.Font.FontStyle = "Bold"
    Excelapp.Selection.Font.Size = 16
    With Flex
        k = .Rows
        For i = 0 To k - 1
            For j = 0 To .Cols - 1
               DoEvents
               Excelapp.ActiveSheet.Cells(3 + i, j + 1) = "'" & .TextMatrix(i, j)
            Next j
        Next i
    End With
    Me.MousePointer = 0
    Excelapp.Visible = True
    Excelapp.Sheets.PrintPreview       
Ert:
    If Not (Excelapp Is Nothing) Then
        Excelapp.Quit
    End If
End Sub但是我在表单的按钮中处理时,显示“数据类型不匹配”
Private Sub Command1_Click()
   OutDataToExcel (lstsip)
End Sub
这里的lstsip是表单的一个msflexgrid控件的名称。
如果把Public Sub OutDataToExcel(Flex As MSFlexGrid) 换成OutdataToExcel(flex)就不提示出错,但导不出数据,只有第一行能发现变动。请问高手,这是怎么回事?急急急!!

解决方案 »

  1.   

    声明是对的
    你检查一下你引用的控件是否正确应该引用 microsoft hierarchical flexgrid 控件哦!然后再使用你的代码如果不行,发消息给我,请注明问题哈!!
      

  2.   

    ’将函数参数改成。我估计你可能将MSHFLEXGRID与MSFLEXGRID搞错了。
    Public Sub OutDataToExcel(Flex As Object)    '导出至Excel将前面的ON ERROR RESUME NEXT 去了,执行一次,看哪一行出错?
      

  3.   

    '試試這句:Excelapp.ActiveSheet.Cells(3 + i, j + 1).Value = "'" & .TextMatrix(i, j)