vb调用excel方法大全

vb调用excel方法大全,第1张

在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 110 object library”项。由于你的Excel版本不同,所以这个选项的版本号也是不同的。

因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application对象,即Excel本身;
第二层:workbooks对象集,指Excel的工作簿文件
第三层:worksheets对象集,表示的是Excel的一个工作表;
第四层:Cells和Range对象,指向Excel工作表中的单元格。
新建立一个VB的工程,先放一个button,名称为Excel_Out。先定义好各层:
Dim xlapp As ExcelApplication 'Excel对象
Dim xlbook As ExcelWorkbook '工作簿
Dim xlsheet As ExcelWorksheet '工作表
我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为testxls文件。
Private Sub Excel_Out_Click()
Dim i, j As Integer
Set xlapp = CreateObject("ExcelApplication") '创建EXCEL对象
'Set xlbook = xlappWorkbooksOpen(AppPath & "\testxls") '打开已经存在的testxls工件簿文件
Set xlbook = xlappWorkbooksAdd '新建EXCEL工件簿文件
'xlbookRunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
'xlbookRunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
xlappVisible = True '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbookWorksheets(1) '设置活动工作表''
''~~~当前工作簿的第一页,这里也可以换成“表名”
'下面就是简单的在一些单元格内写入数字
For i = 7 To 15
For j = 1 To 10
xlsheetCells(i, j) = j '当前工作簿第一页的第I行第J列
Next j
Next i
With xlsheet '设置边框为是实线
Range(Cells(7, 1), Cells(28, 29))BordersLineStyle = xlContinuous
End With

'引用当前工作簿的第二页
Set xlsheet = xlappApplicationWorksheets(2)
xlsheetCells(7, 2) = 2008 '在第二页的第7行第2列写入2008
xlsheetSaveAs AppPath & "\testxls" '按指定文件名存盘
'Set xlbook = xlappApplicationWorkbooksAdd '新建一空白工作簿
xlappQuit '结束EXCEL对象'xlappWorkbooksClose
Set xlapp = Nothing '释放xlApp对象
End Sub
这样,我们就可以简单的对excel文件进行 *** 作了。下面再放一些我从网上查到的资料吧,还挺有用的:
1.创建Excel对象
eole=CREATEOBJECT(′Excelapplication′)
2.添加新工作簿
eoleWorkbooksadd
3.设置第3个工作表为激活工作表
eoleWorksheets(〃sheet3〃)Activate
4.打开指定工作簿
eoleWorkbooksOpen(〃c:\temp\llxls〃)
5.显示Excel窗口
eolevisible=t
6.更改Excel标题栏
eoleCaption=〃VB应用程序调用Microsoft Excel〃
7.给单元格赋值
eolecells(1,4)value=XM(XM为数据库字段名)
8.设置指定列的宽度(单位:字符个数)
eoleActiveSheetColumns(1)ColumnWidth=5
9.设置指定行的高度(单位:磅)
eoleActiveSheetRows(1)RowHeight=1/0035
(设定行高为1厘米,1磅=0035厘米)
10.在第18行之前插入分页符
eoleWorksheets(〃Sheet1〃)Rows(18)PageBreak=1
11.在第4列之前删除分页符
eoleActiveSheetColumns(4)PageBreak=0
12.指定边框线宽度(Borders参数如下)
oleActiveSheetRange(〃b3:d3〃)Borders(2)Weight=3
13.设置四个边框线条的类型
eoleActiveSheetRange(〃b3:d3〃)Borders(2)LineStyle=1
(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
14.设置页眉
eoleActiveSheetPageSetupCenterHeader=〃报表1〃
15.设置页脚
eoleActiveSheetPageSetupCenterFooter=〃第&P页〃
16.设置页眉到顶端边距为2厘米
eoleActiveSheetPageSetupHeaderMargin=2/0035
17.设置页脚到底边距为3厘米
eoleActiveSheetPageSetupFooterMargin=3/0035
18.设置顶边距为2厘米
eoleActiveSheetPageSetupTopMargin=2/0035
19.设置底边距为4厘米
eoleActiveSheetPageSetupBottomMargin=4/0035
20.设置左边距为2厘米
veoleActiveSheetPageSetupLeftMargin=2/0035
21.设置右边距为2厘米
eoleActiveSheetPageSetupRightMargin=2/0035
22.设置页面水平居中
eoleActiveSheetPageSetupCenterHorizontally=t
23.设置页面垂直居中
eoleActiveSheetPageSetupCenterVertically=t
24.设置页面纸张大小(1-窄行8�5�11 39-宽行14�11)
eoleActiveSheetPageSetupPaperSize=1
25.打印单元格网线
eoleActiveSheetPageSetupPrintGridlines=t
26.拷贝整个工作表
eoleActiveSheetUsedRangeCopy
27.拷贝指定区域
eoleActiveSheetRange(〃A1:E2〃)Copy
28.粘贴
eoleWorkSheet(〃Sheet2〃)Range(〃A1〃)PasteSpecial
29.在第2行之前插入一行
eoleActiveSheetRows(2)Insert
30.在第2列之前插入一列
eoleActiveSheetColumns(2)Insert
31.设置字体
eoleActiveSheetCells(2,1)FontName=〃黑体〃
32.设置字体大小
eoleActiveSheetCells(1,1)FontSize=25
33.设置字体为斜体
eoleActiveSheetCells(1,1)FontItalic=t
34.设置整列字体为粗体
eoleActiveSheetColumns(1)FontBold=t
35.清除单元格公式
eoleActiveSheetCells(1,4)ClearContents
36.打印预览工作表
eoleActiveSheetPrintPreview
37.打印输出工作表
eoleActiveSheetPrintOut
38.工作表另存为
eoleActiveWorkbookSaveAs(〃c:\temp\22xls〃)
39.放弃存盘
eoleActiveWorkbooksaved=t
40.关闭工作簿
eoleWorkbooksclose
41.退出Excel
eolequit

双击“我的电脑”==》工具==》文件夹选项==》选择“不显示隐藏的文件和文件夹”==》点击“应用”==》点击确定
任何一个Excel在打开时都会创建该文件的临时文件,这个文件是被隐藏的,当关闭文件时自动隐藏文件会自动消失。

项目——添加引用——com——microsoft excel 110 object library
Dim Xls As ExcelApplication = New ExcelApplication '定义excel应用程序
Dim Xlsbook As ExcelWorkbook '定义工作簿
Dim Xlssheet As ExcelWorksheet '定义工作表
XlsVisible = True '显示excel 程序
Xlsbook = XlsApplicationWorkbooksAdd '添加新工作簿 或exbook=exappworkbooksopen("路径\文件名")'打开已存在工作薄
Xlssheet = XlsbookSheets(1) '第1个工作表的控制句柄
MsgBox("EXCEL档案创建完毕!")
XlssheetCells(1, 1) = "这是一个创建EXCEL的示例"
Dim Sdlg As SaveFileDialog = New SaveFileDialog '定义一个保存对话框
SdlgFileName = "xls" '保存对话框的默认文件名
SdlgFilter = "EXCEL档案(Xls)|Xls" '过滤器设置
If SdlgShowDialog = WindowsFormsDialogResultOK Then '如果保存对话框的确认按钮被按下
XlsbookSaveAs(SdlgFileName) '保存文件
End If
Xlssheet = Nothing '释放资源
XlsbookClose() '关闭工作簿
Xlsbook = Nothing '释放资源
XlsQuit() '退出excel应用程序
Xls = Nothing

不要在菜单 工程 - 引用 里选择 Microsoft Excel 110 Object Library 引用 2003 的版本或其他版本 Office
你完全可以通过注册表来判断当前电脑是否安装 2007 版 Office 然后根据结果来创建不同的对象:
Set xlApp = CreateObject("ExcelApplication") '创建EXCEL对象
默认创建哪个对象你可以查看注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00024500-0000-0000-C000-000000000046} 的值
对象在注册表中 HKEY_CLASSES_ROOT\ExcelApplication

添加引用 Microsoft Excel 120 Object Library (视你的office版本不同有所差异)
然后就可以用这个来编程啦
Dim xlapp As ExcelApplication ‘代表excel程序
Dim wkBook As ExcelWorkbook '代表excelworkbook(也就是excel工作簿文件 xls xlsx)
Dim wkSheet As ExcelWorksheet '代表excel的工作页
xlappApplicationEnableEvents = False '禁止宏等提示的运行
Set wkBook = xlappWorkbooksOpen(ExcelFileName)'wkBook对象,把ExcelFileName替换为你的真实文件 比如 apppath & "\" & "百家姓xls"
Set wkSheet = wkBookWorksheets(1) '选中某个sheet用工作页名字(Sheet1,Sheet2) or 序号

'打开VB,新建工程,插入以下代码
Dim tNum As Long
Private Sub Form_Load()
tNum = 0
Timer1Interval = 1000 '设置Timer1的间隔时间(暂时按每五秒保存一次),单位为毫秒,一秒钟等于1000,5分钟等于多少自己算出来后改
Timer1Enabled = True
End Sub
Private Sub Timer1_Timer()
tNum = tNum + 1 '按上述设置的时间,每秒钟tNum加1
If tNum Mod 5 = 0 Then '如果tNum能被5整除,则说明经过了五秒,则保存一次,注意设置其他的时间的时候,要自己计算,
SaveExcel "需要写入的数据A", "需要写入的数据B" '这个需要写入的数据可以自定义
End If
End Sub
Function SaveExcel(Texta As String, Textb As String) '定义一个函数,用来保存数据到Excel,从A1开始检查,
Dim appExcel As Object
Dim BookExcel
Dim ExcelName As String
Dim i As Long
ExcelName = Year(Date) & Format(Month(Date), "00") & "xls" '按年+月命名Excel工作簿
Set appExcel = CreateObject("ExcelApplication")
appExcelVisible = 0
If Dir(AppPath & "\" & ExcelName) = "" Then '如果当前目录下未发现当月的工作簿,则新建一个写入数据并保存
Set BookExcel = appExcelWorkbooksAdd
Set ExcelSheet = BookExcelSheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheetCells(i, 1) = "" Then
ExcelSheetCells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheetCells(i, 2) = Textb
Exit For
End If
Next
BookExcelSaveAs AppPath & "\" & ExcelName
BookExcelClose
Else
Set BookExcel = appExcelWorkbooksopen(AppPath & "\" & ExcelName) '如果存在则打开工作簿
Set ExcelSheet = BookExcelSheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheetCells(i, 1) = "" Then
ExcelSheetCells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheetCells(i, 2) = Textb
Exit For
End If
Next
BookExcelSave
BookExcelClose
End If
Set BookExcel = Nothing
Set ExcelSheet = Nothing
appExcelQuit
End Function
'VB6,WIN7下测试通过。使用的时候有神马问题请留言


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13334684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存