Private Sub Command1_Click()
Dim Ex As Excel.Application
Dim ExwBook As Excel.Workbook
Dim ExSheet As Excel.Worksheet
On Error Resume Next
'不带第一个参数调用 Getobject 函数将
'返回对该应用程序的实例的引用。
'如果该应用程序不在运行,则会产生错误。
Set Ex = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear '如果发生错误则要清除 Err 对象。
Set Ex = CreateObject("Excel.Application") '应用程序不在运行,则建立
End If
On Error GoTo 0
Set ExwBook = Nothing
Set ExSheet = Nothing
Set ExwBook = Ex.Workbooks().Add
Set ExSheet = ExwBook.Worksheets("sheet1")
'执行EXCEL中的VBA代码
With Ex
'此处剪贴Excel中的代码,并在每句前加一个点
End With
'保存.xls
ExwBook.SaveAs "c:test.xls"
ExwBook.Close False
'退出excel
Ex.Quit
Set Ex = Nothing
End Sub
6)将EXCEL中的VBA代码剪贴到VB程序中,并在每句前添加1个.,就得到如下的VB程序:
Private Sub Command1_Click()
Dim Ex As Excel.Application
Dim ExwBook As Excel.Workbook
Dim ExSheet As Excel.Worksheet
On Error Resume Next
'不带第一个参数调用 Getobject 函数将
'返回对该应用程序的实例的引用。
'如果该应用程序不在运行,则会产生错误。
Set Ex = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear '如果发生错误则要清除 Err 对象。
Set Ex = CreateObject("Excel.Application") '应用程序不在运行,则建立
End If
On Error GoTo 0
Set ExwBook = Nothing
Set ExSheet = Nothing
Set ExwBook = Ex.Workbooks().Add
Set ExSheet = ExwBook.Worksheets("sheet1")
'执行EXCEL中的VBA代码
With Ex
'此处剪贴Excel中的代码,并在每句前加一个点
.Range("A1").Select
.ActiveCell.FormulaR1C1 = "姓名"
.Range("B1").Select
.ActiveCell.FormulaR1C1 = "工资"
.Range("A2").Select
.ActiveCell.FormulaR1C1 = "张三"
.Range("B2").Select
.ActiveCell.FormulaR1C1 = "1000"
.Range("A3").Select
.ActiveCell.FormulaR1C1 = "李四"
.Range("B3").Select
.ActiveCell.FormulaR1C1 = "2000"
.Range("A4").Select
.ActiveCell.FormulaR1C1 = "王五"
.Range("B4").Select
.ActiveCell.FormulaR1C1 = "1500"
.Range("A5").Select
.ActiveCell.FormulaR1C1 = "合计"
.Range("B5").Select
.ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
End With
'保存.xls
ExwBook.SaveAs "c:test.xls"
ExwBook.Close False
'退出excel
Ex.Quit
Set Ex = Nothing
End Sub