Private Sub Command12_Click()  '生成xls
    If MSFlexGrid1.TextMatrix(1, 0) = "" Then
        MsgBox "没有生成内容!"
    Else
        Dim oExcel
        Dim obook
        Dim osheet
        Dim jj As Integer
        Dim ii As Integer
  
        Set oExcel = GetObject(, "Excel.Application")
        Set oExcel = CreateObject("Excel.Application")
  
        oExcel.Visible = False
        oExcel.ScreenUpdating = False
  
        Set obook = oExcel.Workbooks.Add
        Set osheet = obook.Worksheets(1)
  
        For ii = 0 To MSFlexGrid1.Rows - 1
            MSFlexGrid1.Row = ii
            For jj = 0 To MSFlexGrid1.Cols - 1
                  MSFlexGrid1.Col = jj
                  osheet.Range(Cells(ii + 3, jj + 1), Cells(ii + 3, jj + 1)).Select      'EXCEL文件有倆行表頭,而且是以第1行第一列開始計算,所以行加3而列加1
                  ActiveCell.FormulaR1C1 = MSFlexGrid1.Text
                  ActiveCell.ColumnWidth = 8.4
            Next jj
        Next ii    
    End If    
End Sub执行进话我 子程序或涵数未定义!

解决方案 »

  1.   

    Set   oExcel   =   GetObject(,   "Excel.Application") 
                    Set   oExcel   =   CreateObject("Excel.Application") 
    是不是写反了?
      

  2.   

    Set       oExcel       =       GetObject(,       "Excel.Application")   
    Set       oExcel       =       CreateObject("Excel.Application")   
    是不是写反了?换过来试试
    Set       oExcel       =       CreateObject("Excel.Application")
    Set       oExcel       =       GetObject(,       "Excel.Application")
      

  3.   

    我的写法如下,你只要把listview控件换成你的MSGRID控件的写法就行
    但一定要在“引用”里引用microsoft excel *.* Object library(*.*是指安装的EXCEL 版本)
    Public Sub ExpToExcel(lvwList As ListView)
        Dim i As Long
        Dim NewApp As New Excel.Application
        Dim newBook As New Excel.Workbook
        Dim NewSheet As New Excel.Worksheet
        
        Set NewApp = New Excel.Application
        Set newBook = NewApp.Workbooks.Add
        Set NewSheet = newBook.Worksheets(1)    If lvwList.ListItems.Count = 0 Then Exit Sub    Dim arrData() As String
        ReDim arrData(0 To lvwList.ListItems.Count, 0 To lvwList.ColumnHeaders.Count) As String
        Dim j As Integer    For j = 1 To lvwList.ColumnHeaders.Count
            arrData(0, j - 1) = lvwList.ColumnHeaders(j).Text
        Next    For i = 1 To lvwList.ListItems.Count
            arrData(i, 0) = lvwList.ListItems(i).Text
            For j = 1 To lvwList.ColumnHeaders.Count - 1
                arrData(i, j) = lvwList.ListItems(i).SubItems(j)
            Next
        Next
        NewSheet.Range(NewSheet.Cells(1, 1), NewSheet.Cells(i, j)) = arrData
        NewSheet.Columns.AutoFit
        NewApp.Visible = True
        
        Set NewSheet = Nothing
        Set newBook = Nothing
        Set NewApp = Nothing
    End Sub
      

  4.   

    会不会是在引用中没有添加excel啊
      

  5.   

    在工程菜单选引用中添加Micorsoft Excel Object  11.0   labrary 试试。