RowCount = Me.MsFlexGrad.Rows ColCount = Me.MsFlexGrad.Cols - 1 For i = 0 To RowCount - 1 Me.g.Row = i For j = 1 To ColCount + 1 Me.g.Col = j - 1 Sheet.Cells.Item(i + 12, j) = Me.MsFlexGrad.Text Next j tonext: Next i
Private Function ExportToExcel() As Boolean Dim strFilename As String Dim i As Long
On Error GoTo ErrorHandler:
With CommonDialog1 .Flags = &H4 '隐藏只读复选框 .DialogTitle = "输出到Excel" .CancelError = True .Filter = "Excel表格文件(*.csv)|*.csv" .ShowSave strFilename = .FileName End With
If Dir(strFilename) <> "" Then Kill strFilename
Open strFilename For Binary Access Write As #1 For i = 1 To MsFlexGrid1.Rows - 1 Put #1, , MsFlexGrid1.TextMatrix(i, 1) & "," & _ MsFlexGrid1.TextMatrix(i, 2) & "," & _ MsFlexGrid1.TextMatrix(i, 3) & vbCrLf Next i Put #1, , vbCrLf
Close #1
ExportToExcel = True Exit FunctionErrorHandler: If Err.Number <> 32755 Then MsgBox Err.Description, vbExclamation, "错误提示" ExportToExcel = False End If End Function
循环写入
用cell
ColCount = Me.MsFlexGrad.Cols - 1
For i = 0 To RowCount - 1
Me.g.Row = i
For j = 1 To ColCount + 1
Me.g.Col = j - 1
Sheet.Cells.Item(i + 12, j) = Me.MsFlexGrad.Text
Next j
tonext:
Next i
Dim strFilename As String
Dim i As Long
On Error GoTo ErrorHandler:
With CommonDialog1
.Flags = &H4 '隐藏只读复选框
.DialogTitle = "输出到Excel"
.CancelError = True
.Filter = "Excel表格文件(*.csv)|*.csv"
.ShowSave
strFilename = .FileName
End With
If Dir(strFilename) <> "" Then Kill strFilename
Open strFilename For Binary Access Write As #1
For i = 1 To MsFlexGrid1.Rows - 1
Put #1, , MsFlexGrid1.TextMatrix(i, 1) & "," & _
MsFlexGrid1.TextMatrix(i, 2) & "," & _
MsFlexGrid1.TextMatrix(i, 3) & vbCrLf
Next i
Put #1, , vbCrLf
Close #1
ExportToExcel = True
Exit FunctionErrorHandler:
If Err.Number <> 32755 Then
MsgBox Err.Description, vbExclamation, "错误提示"
ExportToExcel = False
End If
End Function
doevents
同时置MsFlexGrad所在的窗体Enable=false避免在导入完毕之前关闭窗体
就不会死机了