-------第一次导出的时候没问题,再导出第二次的时候提示“对象range的方法_worksheet失败”
----------代码中的mf1为mshflexgrid控件---------------------
Private Sub Command1_Click()Dim TempExcel As Excel.Application
Dim TempSheet As Excel.Worksheet
Dim intI As Integer
Dim intJ As IntegerIf mf1.Rows > 1 Then
Set TempExcel = New Excel.Application
TempExcel.Application.Visible = True
TempExcel.Workbooks.Add (1)
Set TempSheet = TempExcel.ActiveWorkbook.ActiveSheet
With TempExcel.ActiveCell.Characters(Start:=1, Length:=26).Font
.Name = "宋体"
.FontStyle = "加粗"
.Size = 18
'.Height = 22
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = True
'.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
For intI = 0 To mf1.Rows - 1
For intJ = 0 To mf1.Cols - 1
TempSheet.Cells(intI + 4, intJ + 1) = mf1.TextMatrix(intI, intJ)
Next intJ
Next intI
TempSheet.Application.DisplayAlerts = False '导出后的错误不提示 TempSheet.Cells(1, 1) = Label1.Caption & Label2.Caption
TempSheet.Range("A1:P1").MergeCells = True
TempSheet.Range("A1:A1").HorizontalAlignment = xlCenter
TempSheet.Cells(2, 1) = Label3.Caption & Combo2.Text & Space(15) & Label5.Caption & Label4.Caption & Space(15) & Label6.Caption & Label7.Caption & Space(15) & Label8.Caption & Label9.Caption & Space(15) & Label10.Caption & Label11.Caption
TempSheet.Range("A2:P2").MergeCells = True
TempSheet.Range("A2:A2").HorizontalAlignment = xlCenter
TempSheet.Range("A4:A6").MergeCells = True
TempSheet.Range("I4:I6").MergeCells = True
TempSheet.Range("J4:J6").MergeCells = True
TempSheet.Range("K4:K6").MergeCells = True
TempSheet.Range("L4:L6").MergeCells = True
TempSheet.Range("M4:M6").MergeCells = True
TempSheet.Range("N4:N6").MergeCells = True
TempSheet.Range("O4:O6").MergeCells = True
TempSheet.Range("P4:P6").MergeCells = True
TempSheet.Columns("A:N").AutoFit
TempSheet.Range("A:P").HorizontalAlignment = xlCenter
TempSheet.Range(Cells(4, 1), Cells(mf1.Rows + 3, 16)).Borders.LineStyle = xlContinuous
TempSheet.Cells(mf1.Rows + 6, 1) = Text2.Text
Else
MsgBox "没有可导出的数据", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
End Sub
----------代码中的mf1为mshflexgrid控件---------------------
Private Sub Command1_Click()Dim TempExcel As Excel.Application
Dim TempSheet As Excel.Worksheet
Dim intI As Integer
Dim intJ As IntegerIf mf1.Rows > 1 Then
Set TempExcel = New Excel.Application
TempExcel.Application.Visible = True
TempExcel.Workbooks.Add (1)
Set TempSheet = TempExcel.ActiveWorkbook.ActiveSheet
With TempExcel.ActiveCell.Characters(Start:=1, Length:=26).Font
.Name = "宋体"
.FontStyle = "加粗"
.Size = 18
'.Height = 22
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = True
'.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
For intI = 0 To mf1.Rows - 1
For intJ = 0 To mf1.Cols - 1
TempSheet.Cells(intI + 4, intJ + 1) = mf1.TextMatrix(intI, intJ)
Next intJ
Next intI
TempSheet.Application.DisplayAlerts = False '导出后的错误不提示 TempSheet.Cells(1, 1) = Label1.Caption & Label2.Caption
TempSheet.Range("A1:P1").MergeCells = True
TempSheet.Range("A1:A1").HorizontalAlignment = xlCenter
TempSheet.Cells(2, 1) = Label3.Caption & Combo2.Text & Space(15) & Label5.Caption & Label4.Caption & Space(15) & Label6.Caption & Label7.Caption & Space(15) & Label8.Caption & Label9.Caption & Space(15) & Label10.Caption & Label11.Caption
TempSheet.Range("A2:P2").MergeCells = True
TempSheet.Range("A2:A2").HorizontalAlignment = xlCenter
TempSheet.Range("A4:A6").MergeCells = True
TempSheet.Range("I4:I6").MergeCells = True
TempSheet.Range("J4:J6").MergeCells = True
TempSheet.Range("K4:K6").MergeCells = True
TempSheet.Range("L4:L6").MergeCells = True
TempSheet.Range("M4:M6").MergeCells = True
TempSheet.Range("N4:N6").MergeCells = True
TempSheet.Range("O4:O6").MergeCells = True
TempSheet.Range("P4:P6").MergeCells = True
TempSheet.Columns("A:N").AutoFit
TempSheet.Range("A:P").HorizontalAlignment = xlCenter
TempSheet.Range(Cells(4, 1), Cells(mf1.Rows + 3, 16)).Borders.LineStyle = xlContinuous
TempSheet.Cells(mf1.Rows + 6, 1) = Text2.Text
Else
MsgBox "没有可导出的数据", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货