VB中用程序处理WORD和
EXCEL的问题,我把我的经验在这里描述一下,希望对大家有帮助。关于在VB中对WORD或
EXCEL进行编程处理,一般可以通过录制新宏的方法获得WORD或
EXCEL中的VBA代码,然后再将代码剪贴到VB程序中去,具体执行步骤用下面的
EXCEL例子说明一下:
例:我们要在A1的地方输入"姓名",B1的地方输入"工资",然后A2输入张三,B2输入1000,。。。,最后在A5输入合计,并在B5计算出全部工资。
1)首先打开 EXCEL,选择菜单[工具]—[宏]—[录制新宏]
2)在A1格中输入:姓名;B1格中输入:工资;A2输入:张三;B2输入:1000;A3输入:李四;B3输入:1000;。。。A5输入:合计,并在B5输入:=SUM(B2:B4)
3)选择停止[宏]
4)选择菜单[工具]—[宏]—[Visual Baisic 编辑器],这时为VBA的调试环境(几乎和VB的一样),然后打开“模块1”的代码窗口,就可以看到如下代码:
Sub 宏1()
'
' 宏1 Macro
' zhouch 记录的宏 2004-9-13
'
'
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 Sub
5)在VB中新建一个工程,加1个Command控件,并在VB的菜单[工程]—[引用]下添加引用“Microsoft Excel 9.0 Object Library”,再添加如下 EXCEL调用的框架代码:
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"
例:我们要在A1的地方输入"姓名",B1的地方输入"工资",然后A2输入张三,B2输入1000,。。。,最后在A5输入合计,并在B5计算出全部工资。
1)首先打开 EXCEL,选择菜单[工具]—[宏]—[录制新宏]
2)在A1格中输入:姓名;B1格中输入:工资;A2输入:张三;B2输入:1000;A3输入:李四;B3输入:1000;。。。A5输入:合计,并在B5输入:=SUM(B2:B4)
3)选择停止[宏]
4)选择菜单[工具]—[宏]—[Visual Baisic 编辑器],这时为VBA的调试环境(几乎和VB的一样),然后打开“模块1”的代码窗口,就可以看到如下代码:
Sub 宏1()
'
' 宏1 Macro
' zhouch 记录的宏 2004-9-13
'
'
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 Sub
5)在VB中新建一个工程,加1个Command控件,并在VB的菜单[工程]—[引用]下添加引用“Microsoft Excel 9.0 Object Library”,再添加如下 EXCEL调用的框架代码:
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"
ExSheet.Application.Visible = True '显示excel表格
ExSheet .PrintPreview '预览
ExSheet .DisplayAlerts = False '退出时不提示保存
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
7)运行以上程序,并按“Command1”按钮,就会在C盘根目录下生成一个 EXCEL文件:test.xls,打开看一下,是不是我们想要的啊?
ExSheet .PrintPreview '预览
ExSheet .DisplayAlerts = False '退出时不提示保存
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
7)运行以上程序,并按“Command1”按钮,就会在C盘根目录下生成一个 EXCEL文件:test.xls,打开看一下,是不是我们想要的啊?