VB中对Excel编程操作实例
- 格式:doc
- 大小:13.36 KB
- 文档页数:6
VB中读写EXCEL文件在VB中要想调用Excel ,需要打开VB编程环境“工程”菜单中的“引用”项目, 并选取项目中的“ Microsoft Excel 11.0 object library ”项。
由于你的Excel 版本不同,所以这个选项的版本号可能不同。
定义EXCE对象Dim XlsObj As Excel.Application 'Excel 对象Dim XlsBook As Excel.Workbook ' 工作簿Dim XlsSheet As Excel.Worksheet ' 工作表。
打开或创建EXCELSet XlsObj = CreateObject("Excel.Application") '创建EXCEL对象XlsObj.Visible = True '设置EXCEL寸象可见(或不可见)' 打开已经存在的test.xls 工件簿文件Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls")' 创建有一个工作表的工作簿XlsObj.SheetsInNewWorkbook = 1Set XlsBook = XlsObj.Workbooks.Add。
设置活动工作表' 或者Set XlsSheet = XlsObj.Worksheets(1) 代表第1个SheetSet XlsSheet = XlsObj.Worksheets(" 表名")给单元格( row,col )赋值XlsSheet.Cells(row, col) = 值给合并的单元格赋值,如( A3:A9)XlsSheet.Range("A3:A9") = 值运行EXCEL 宏XlsBook.RunAutoMacros (" 宏名")插入一行XlsSheet.Rows("1:1").Insert Shift:=xlDown保存EXCEL 文件XlsBook.Save另存为XlsBook.SaveAs(" 文件名")关闭工作簿XlsBook.Close (True)结束EXCEL 对象XlsObj.Quit释放XlsObj 对象Set XlsObj = Nothing如果要求在退出应用程序后EXCEL不提示用户是否保存已修改的文件, 则可使用如下语句:XlsObj.DisplayAlerts = FalseXlsObj.QuitXlsObj.DisplayAlerts = True网上实例' 下面就是简单的在一些单元格内写入数字For i = 7 To 15For j = 1 To 10 xlsheet.Cells(i, j) = j Next j Next i xlapp.Quit '结束EXCEI对象'xlapp.Workbooks.Close当前工作簿第一页的第I行第J列Set xlapp = Nothing ' 释放xlApp 对象End Sub这样,我们就可以简单的对excel 文件进行操作了。
用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左2-右3-顶4-底5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书';ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Contents:=True,Scena rios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _ Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End SubPrivate Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer = 11 '改变鼠标样式Set objExl = New Excel.Application '初始化对象变量objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1objExl.Workbooks.Add '增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name = "book2"objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name = "book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i = 1 To 50 '循环写入数据For j = 1 To 5If i = 1 ThenobjExl.Selection.NumberFormatLocal = "@" '设置格式为文本objExl.Cells(i, j) = " E " & i & jElseobjExl.Cells(i, j) = i & jEnd IfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold = True '设为粗体objExl.Selection.Font.Size = 24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow = 1 '拆分第一行objExl.ActiveWindow.SplitColumn = 0 '拆分列objExl.ActiveWindow.FreezePanes = True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _Format(Now, "yyyy年mm 月dd日 hh:MM:ss")objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式objExl.ActiveWindow.Zoom = 100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _Contents:=True, Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests = FalseobjExl.Visible = True '使EXCEL可见objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个Set objExl = Nothing '清除对象Me.MousePointer = 0 '修改鼠标Exit Suberr1:objExl.SheetsInNewWorkbook = 3objExl.DisplayAlerts = False '关闭时不提示保存objExl.Quit '关闭EXCELobjExl.DisplayAlerts = True '关闭时提示保存Set objExl = NothingMe.MousePointer = 0End Sub=====================================全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := True;2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Exce l';3) 添加新工作簿:ExcelID.WorkBooks.Add;4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearC ontents;13) 设置第一行字体属性:ExcelID.ActiveSheet.Rows[1] := '隶书';ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelID.ActiveSheet.Rows[1].Font.Bold := True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;14) 进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2 /0.035;k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines := T rue;15) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecia l;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelID.ActiveSheet.Rows[2].Insert;b. ExcelID.ActiveSheet.Columns[1].Insert;17) 删除一行或一列:a. ExcelID.ActiveSheet.Rows[2].Delete;b. ExcelID.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19) 打印输出工作表:ExcelID.ActiveSheet.PrintOut;20) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreviewEnd if21) 工作表另存为:ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelID.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelID.WorkBooks.Close;24) 退出 Excel:ExcelID.Quit;25) 设置工作表密码:ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=Tr ue, Scenarios:=True26) EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized27) 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) '关闭时是否提示保存(true 保存;false 不保存) ExcelID.DisplayAlerts = False30) 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True31) 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"32) 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""33) 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPreview34) 设置显示比例ExcelID.ActiveWindow.Zoom = 10035) 让Excel 响应 DDE 请求Ex.Application.IgnoreRemoteRequests = False。
用V B操作E x c e l(V B6.0)(整理) 全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application?1)显示当前窗口:? ExcelID.Visible:=True;2)更改Excel标题栏:? ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:4)打开已存在的工作簿:5)设置第2个工作表为活动工作表:? ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:? ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:9)在第8行之前插入分页符:? ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:11)指定边框线宽度:? 1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:13)设置第一行字体属性:14)进行页面设置:a.页眉:b.页脚:c.页眉到顶端边距2cm:d.页脚到底端边距3cm:e.顶边距2cm:f.底边距2cm:g.左边距2cm:h.右边距2cm:i.页面水平居中:j.页面垂直居中:k.打印单元格网线:15)拷贝操作:a.拷贝整个工作表:b.拷贝指定区域:c.从A1位置开始粘贴:d.从文件尾部开始粘贴:16)插入一行或一列:17)删除一行或一列:18)打印预览工作表:19)打印输出工作表:20)工作表保存:? Endif21)工作表另存为:? ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:23)关闭工作簿:24)退出Excel:? ExcelID.Quit;25)设置工作表密码:26)EXCEL的显示方式为最大化ndowState=xlMaximized?27)工作薄显示方式为最大化28)设置打开默认工作薄数量? ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存) ? ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置31)设置打印时固定打印内容32)设置打印标题33)设置显示方式(分页方式显示)34)设置显示比例35)让Excel响应DDE请求用VB操作EXCEL示例代码? Private Sub Command3_Click()? On Error GoTo err1? Dim i As Long? Dim j As Long? Dim objExl As Excel.Application '声明对象变量? Me.MousePointer=11 '改变鼠标样式? Set objExl=New Excel.Application'初始化对象变量? objExl.SheetsInNewWorkbook=1? '将新建的工作薄数量设为1?? objExl.Sheets("book1").Select? '选中工作薄<book1>? For i=1 To 50'循环写入数据? For j=1 To 5? If i=1 Then??? objExl.Cells(i,j)="E"&i&j? Else??? objExl.Cells(i,j)=i&j? EndIf? Next? Next? objExl.Rows("1:1").Select '选中第一行? Format(Now,"yyyy年mm月dd日hh:MM:ss")? '给工作表加密码? Contents:=True,Scenarios:=True? objExl.Visible=True? '使EXCEL可见? objExl.SheetsInNewWorkbook=3? '将默认新工作薄数量改回3个? ? Set objExl=Nothing'清除对象? Me.MousePointer=0 '修改鼠标? ExitSub? err1:??? objExl.SheetsInNewWorkbook=3?? objExl.DisplayAlerts=False? '关闭时不提示保存? objExl.Quit'关闭EXCEL? objExl.DisplayAlerts=True '关闭时提示保存? Set objExl=Nothing? Me.MousePointer=0? End Sub。
VB编程在Excel中的应用--精编还是引用其他单元格计算,只要在一个单元格中输入公式,就能得到结果。
这个直接显示结果的设计对于绝大多数场合来说都是适用的,但某些情况下就不那么让人满意了。
比如说在做工程施工的预结算编写,使用Excel,既要写出工程量的计算式,也要看到它的结果,于是这样相同的公式在Excel 里面要填两次,一次在文本格式的单元格中输入公式,一次是在数据格式的单元格中输入公式让Excel 计算结果。
如何既能看到公式又能看到结果呢?这个问题笔者认为可以从两个方面考虑:一种方法是所谓“已知结果,显示公式”,先在数据格式单元格中输入公式让Excel 计算结果,然后在相邻的单元格中看到公式;另一种方法所谓“已知公式,显示结果”,就是先在一个文本格式的单元格中输入公式,在相邻的单元格中看到结果。
★已知结果,显示公式假设C 列为通过公式计算得到的结果(假设C1 为“=A1+B1”,或者直接是数字运算“=2+3”),而相邻的 D 列是你需要显示公式的地方(即D1 应该显示为“=A1+B1”或者“=2+3”)。
1. 打开“工具”菜单选择“选项”命令,出现“选项”对话框。
2. 在“常规”选项卡中,选中“R1C1 引用方式”选项。
3. 定义名称,将“引用位置”由“=GET.CELL(6,Sheet1!RC[-1])”即可。
这里的RC[-1]含义是如果在当前单元格的同行前一列单元格中有公式结果,则在当前单元格中得到公式内容,即在含公式结果单元格的同行后一列单元格显示公式内容;如果将RC[-1]改为RC[1],则在公式结果的同行前一列单元格显示公式内容。
4. 如果“引用位置”中含有“RC[-1]”,则在含公式结果单元格的同行后一列单元格中输入“=FormulaofResult”即可得到公式;如果“引用位置”中含有“RC[1]”,则在含公式结果单元格的同行前一列单元格中输入“=FormulaofResult”即可得到公式。
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用E XECL的强大报表功来实现报表功能。
但由于VB与E XCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EX C EL表:VB本身提自动化功能可以读写EX CEL表,其方法如下:1、在工程中引用M icro s oftExcel类型库:从"工程"菜单中选择"引用"栏;选择Micr osoft Excel9.0 Object Librar y(EXCEL2000),然后选择"确定"。
表示在工程中要引用EX CEL类型库。
2、在通用对象的声明过程中定义EXC EL对象:Dim xlAppAs Excel.Applic ationDim xlBook As Excel.W orkBo o kDim xlShee t As Excel.Worksh eet3、在程序中操作E XCEL表常用命令:Set xlApp= Create Objec t("Excel.A pplic ation") '创建EXCE L对象Set xlBook = xlApp.Workbo oks.Open("文件名") '打开已经存在的E XCE L工件簿文件xlApp.V isibl e = True '设置EXCE L对象可见(或不可见)Set xlShee t = xlBook.Worksh eets("表名") '设置活动工作表xlApp.C ells(row, col) =值 '给单元格(row,col)赋值XLApp.C ells(i, 1).Interi or.ColorI ndex= i'设计单元格颜色i=1--56xlShee t.PrintO u t '打印工作表xlBook.Close(True) '关闭工作簿xlApp.Q uit '结束EXCE L对象Set xlApp= Nothin g '释放xlAp p对象xlBook.RunAut oMacr os (xlAuto Open) '运行EXCE L启动宏xlBook.RunAut oMacr os (xlAuto Close) '运行EXCE L关闭宏自己用代码就可以获取颜色列表了Sub yansec ode()For i = 1 To 56XlApp.C ells(i, 1) = ixlapp.C ells(i, 1).Interi or.ColorI ndex= iNextEnd Sub4、在运用以上V B命令操作E X CEL表时,除非设置EX CEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭E X CEL,同时也可对E X CEL进行操作。
用VB操作Excel详解一、VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表xlSheet.Cells(row, col) =值'给单元格(row,col)赋值xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
visual studio2010 vb excel例程以下是一个简单的Visual Studio 2010 示例,用于打开Excel文件并读取其中的数据:```vbImports Excel = Microsoft.Office.Interop.ExcelPublic Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click' 创建Excel应用程序对象Dim excelApp As New Excel.Application()' 打开Excel文件Dim workbook As Excel.Workbook = excelApp.Workbooks.Open("C:\example.xlsx")' 获取第一个工作表Dim worksheet As Excel.Worksheet = workbook.Worksheets(1)' 读取单元格A1中的值Dim value As String = worksheet.Range("A1").Value' 显示值TextBox1.Text = value' 关闭Excel文件和释放对象workbook.Close()ReleaseObject(worksheet)workbook.Quit()ReleaseObject(workbook)excelApp.Quit()ReleaseObject(excelApp)End SubPrivate Sub ReleaseObject(ByVal obj As Object)TrySystem.Runtime.InteropServices.Marshal.ReleaseComObject(obj)obj = NothingCatch ex As Exceptionobj = NothingFinallyGC.Collect()End TryEnd SubEnd Class```该示例使用了Microsoft Office Interop Excel库,需要在Visual Studio中添加对Microsoft Excel xx.x Object Library的引用。
用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3; 1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书';ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue;ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示';b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif ????打印预览21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Cont ents:=True,Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1 objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _ Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存 objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End Sub。
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏自己用代码就可以获取颜色列表了Sub yansecode()For i = 1 To 56XlApp.Cells(i, 1) = ixlapp.Cells(i, 1).Interior.ColorIndex = iNextEnd Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
VB操作EXCEL表的常用方法VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从'工程'菜单中选择'引用'栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择'确定'。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject('Excel.Application') '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open('文件名') '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets('表名') '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏自己用代码就可以获取颜色列表了Sub yansecode()For i = 1 To 56XlApp.Cells(i, 1) = ixlapp.Cells(i, 1).Interior.ColorIndex = iNextEnd Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
高级编程EXCEL的VBA应用实例在 Excel 中使用 VBA 编程可以极大地提高工作效率和数据处理能力。
本文将介绍几个高级的 VBA 应用实例,帮助读者更好地掌握Excel 的编程技巧。
VBA(Visual Basic for Applications)是一种专门为 Microsoft Office 软件开发的编程语言,可以通过编写宏代码实现一些自动化操作和功能扩展。
下面我们将通过几个实例来说明 VBA 在 Excel 中的应用。
实例一:自动填充数据假设我们有一个订单表,需要根据已有的数据填充一些重复的信息。
这时候可以使用 VBA 的自动填充功能来实现。
首先打开 Excel 文件,按下 ALT + F11 进入 VBA 编辑器,然后在“项目资源管理器”中选择该工作簿,右键点击“插入”,再选择“模块”,进入新建的模块中编写以下代码:```vbaSub AutoFillData()Dim LastRow As LongLastRow = Range("A" & Rows.count).End(xlUp).RowRange("B2:B" & LastRow).Value = Range("B1").ValueEnd Sub```保存并退出 VBA 编辑器,然后在 Excel 表格中按下 ALT + F8,选择刚才编写的宏并运行。
这样,B 列的数据将自动填充为 B1 单元格的内容。
实例二:自定义函数有时候我们需要进行一些特殊的计算或数据处理,而 Excel 内置的函数无法满足需求。
这时候可以借助 VBA 编写自定义函数。
同样进入VBA 编辑器,创建一个新的模块,编写以下代码:```vbaFunction ConcatenateText(ByVal Text1 As String, ByVal Text2 As String) As StringConcatenateText = Text1 & " " & Text2End Function```保存并退出 VBA 编辑器,然后在 Excel 表格中可以使用"=ConcatenateText(A1, B1)" 函数将 A1 和 B1 单元格的内容拼接在一起。
vb调用excel对象的使用实例...Private Sub Command1_Click()Dim xlApp As ObjectSet xlApp = CreateObject("Excel.Application")'Dim xlapp As Excel.Application 'Excel对象' Dim xlbook As New Excel.Workbook '工作簿'Dim xlsheet As Excel.Worksheet '工作表'Dim exlApp As New Excel.Application'Dim exlBook As Object'Set exlBook = CreateObject("Excel.Workbook")'Dim exlBook As New Excel.Workbook' Set exlApp = New Excel.ApplicationxlApp.Visible = True '显示Excel窗口Set exlBook = xlApp.Workbooks.Open("d:\testvb\1.xls") 'Excel文件路径及文件名'向Excel表中写入数据,Sheets(1)为第1个工作表,Cells(行号,列号)是单元格xlApp.Sheets(1).Cells(1, 1) = "11"xlApp.Sheets(1).Cells(1, 2) = "12"xlApp.Sheets(1).Cells(2, 1) = "21"xlApp.DisplayAlerts = False'exlBook.Close True '先保存修改再关闭工作簿xlApp.SavexlApp.Quit '关闭ExcelEnd Sub注意表的删除与表的添加的方式与方法:Private Sub Command1_Click()Dim xlApp As ObjectSet xlApp = CreateObject("Excel.Application")'Dim xlapp As Excel.Application 'Excel对象' Dim xlbook As New Excel.Workbook '工作簿'Dim xlsheet As Excel.Worksheet '工作表'Dim exlApp As New Excel.Application'Dim exlBook As Object'Set exlBook = CreateObject("Excel.Workbook")' Dim exlBook As New Excel.Workbook' Set exlApp = New Excel.ApplicationxlApp.Visible = True '显示Excel窗口Set exlBook = xlApp.Workbooks.Open("d:\testvb\1.xls")'Excel文件路径及文件名'向Excel表中写入数据,Sheets(1)为第1个工作表,Cells(行号,列号)是单元格xlApp.sheets(1).cells(1, 1) = "11"xlApp.sheets(1).cells(1, 2) = "12"xlApp.sheets(1).cells(2, 1) = "21"xlApp.sheets(1).cells(3, 4) = "34"xlApp.DisplayAlerts = False'exlBook.Close True '先保存修改再关闭工作簿xlApp.sheets(2).Delete'表2的删除,即位置处于2号位的表的删除xlApp.sheets.Add'表的添加,添加后表处于1号位xlApp.sheets(2).Select'这两句是表位置的调整,使1号位与2号位的表的位置与换xlApp.sheets(2).Move Before:=xlApp.sheets(1)xlApp.SavexlApp.Quit '关闭ExcelEnd Sub。
用VB操作Excel(VB6.0)(整理)用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书'; ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页'; c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035; d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035; e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.T opMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035; g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Con tents:=True,Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1 objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_ Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End Sub。
Excel VBA编程实例Excel VBA(Visual Basic for Applications)是一种用于自动化Excel应用程序的编程语言。
通过编写VBA代码,我们可以在Excel中创建宏、自定义功能和自动化任务。
本文将介绍一些Excel VBA编程实例,以帮助读者更好地理解并应用VBA编程技巧。
1. 自动筛选数据在Excel中,我们经常需要根据特定条件筛选数据。
通过VBA编程,我们可以实现自动筛选数据的功能。
首先,我们需要打开Excel并进入VBA编辑器。
然后,编写以下代码:```vbaSub AutoFilterData()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Sheet1") '将"Sheet1"替换为你的工作表名称With ws.Range("A1:D1").AutoFilter '将"A1:D1"替换为你要筛选的范围.Range("A1:D1").AutoFilter Field:=1, Criteria1:="Apple" '将1替换为你要筛选的列号,"Apple"替换为你要筛选的条件End WithEnd Sub```运行以上代码后,Excel将自动筛选出满足条件为“Apple”的数据。
2. 创建自动化报告Excel中的报告制作通常是非常繁琐的,但通过VBA编程,我们可以自动化这个过程。
以下代码演示了如何创建一个简单的销售报告:```vbaSub CreateReport()Dim ws As WorksheetDim reportWs As WorksheetDim lastRow As LongSet ws = ThisWorkbook.Sheets("Data") '将"Data"替换为包含数据的工作表名称Set reportWs = ThisWorkbook.Sheets.Add '添加一个新的工作表作为报告'设置报告表头reportWs.Range("A1") = "日期"reportWs.Range("B1") = "销售额"'计算数据行数lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row'填充数据reportWs.Range("A2:A" & lastRow).Value = ws.Range("A2:A" & lastRow).ValuereportWs.Range("B2:B" & lastRow).Formula = "=C2*D2" '假设C列为单价,D列为数量'添加图表Dim chartObj As ChartObjectSet chartObj = reportWs.ChartObjects.Add(110, 20, 300, 200)With chartObj.Chart.SetSourceData Source:=reportWs.Range("A1:B" & lastRow).ChartType = xlColumnClusteredEnd WithEnd Sub```运行以上代码后,Excel将创建一个新工作表作为报告,并将销售数据以及相应的图表添加到报告中。
操作excel实例以前做了vb6.0操作excel的实例,后来转换成c#操作excel,再后来又转换成操作excel,通过比较,同样是运行在。
.net环境下,但是明显要比c#快很多。
我做的是成绩统计软件,一个窗体。
俩控件:菜单和打开文件对话框。
子程序目录:1、算成绩(m)。
2、成绩册(m)。
3、横排(h,l)。
4、纵排(h,l)。
5、单科统计表(m,n)。
6、算分栏(h)。
7、单科汇总(i)。
8、填数据(m)。
9、清数据(m)。
10、上报表(m)。
11、工作表命名()。
12、过成绩(m)。
13、打开()。
14、建空表(m)。
15、无英语学校汇总(m)。
16、有英语学校汇总(m)。
17、计算器。
编码主要分为主程序和子程序两个模块。
注意:要添加引用excel。
Imports System.IOPublic Class 统计成绩Public 调用= New 子程序()Public 电子表格As Excel.Application '定义变量Public 工作簿As Excel.WorkbookPublic 工作表As Excel.WorksheetPublic 单元格As Excel.RangePrivate Sub 一年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 一年级ToolStripMenuItem.ClickCall 调用.建空表(10)Call 调用.工作表命名(1)Call 调用.成绩册(1)End SubPrivate Sub 二年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 二年级ToolStripMenuItem.ClickCall 调用.建空表(10)Call 调用.工作表命名(2)Call 调用.成绩册(2)End SubPrivate Sub 三年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 三年级ToolStripMenuItem.ClickCall 调用.建空表(8)Call 调用.工作表命名(3)Call 调用.成绩册(3)End SubPrivate Sub 四年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 四年级ToolStripMenuItem.ClickCall 调用.建空表(8)Call 调用.工作表命名(3)Call 调用.成绩册(3)End SubPrivate Sub 五年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 五年级ToolStripMenuItem.ClickCall 调用.建空表(8)Call 调用.工作表命名(3)Call 调用.成绩册(3)End SubPrivate Sub 六年级ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 六年级ToolStripMenuItem.ClickCall 调用.建空表(8)Call 调用.工作表命名(3)Call 调用.成绩册(3)End SubPrivate Sub 学校总评ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 学校总评ToolStripMenuItem.ClickCall 调用.建空表(1)Dim nj(6) As Stringnj(1) = "一年级" : nj(2) = "二年级" : nj(3) = "三年级" : nj(4) = "四年级" : nj(5) = "五年级" : nj(6) = "六年级"'建立积分表Dim 工作表= 调用.工作簿.Worksheets("sheet1")工作表.Name = "学校积分"工作表.Range(工作表.Cells(1, 1), 工作表.Cells(1, 9)).MergeCells = True工作表.Cells(1, 1) = "学校积分统计表"工作表.Cells(2, 1) = "学校"工作表.Cells(3, 1) = "南村小学"工作表.Cells(4, 1) = "东风小学"工作表.Cells(5, 1) = "兴中小学"工作表.Cells(6, 1) = "尧场小学"For i = 1 To 6工作表.Cells(2, i + 1) = nj(i) + "积分"Next工作表.Cells(2, 8) = "均积分"工作表.Cells(2, 9) = "名次"工作表.Range(工作表.Cells(2, 1), 工作表.Cells(6, 9)).Borders.LineStyle = 1 '表格加线Dim h = 6, l = 9单元格= 工作表.Range(工作表.Cells(1, 1), 工作表.Cells(h, l)) '设置行高和列宽单元格.HorizontalAlignment = Excel.Constants.xlCenter '水平居中单元格.RowHeight = 工作表.Application.CentimetersToPoints(Math.Round((21.3 - 3 * 2) / h, 2))工作表.Range(工作表.Cells(2, 1), 工作表.Cells(11, 1)).ColumnWidth = 16.13工作表.Range(工作表.Cells(2, 2), 工作表.Cells(h, l)).ColumnWidth = Math.Round((29.7 - 3.69 - 1.9 * 2) / (l - 1) * 4.374, 2)工作表.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape '横向打印End SubPrivate Sub 上报ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 上报ToolStripMenuItem.ClickCall 调用.建空表(2)调用.上报表()End SubPrivate Sub 全部表册ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 全部表册ToolStripMenuItem.ClickDirectory.CreateDirectory("C:\Documents and Settings\Administrator\桌面\成绩统计") '建立文件夹调用.建空表(10) '一年级Call 调用.工作表命名(1) : Call 调用.成绩册(1)调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\一年级.xls")调用.工作簿.close()调用.电子表格.quit()调用.建空表(10) '二年级Call 调用.工作表命名(2) : Call 调用.成绩册(2)调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\二年级.xls")调用.工作簿.close()调用.电子表格.quit()调用.建空表(8) '三年级Call 调用.工作表命名(3) : Call 调用.成绩册(3)调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\三年级.xls")调用.工作簿.close()调用.电子表格.quit()调用.建空表(8) '四年级Call 调用.工作表命名(4) : Call 调用.成绩册(4)调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\四年级.xls")调用.工作簿.close()调用.电子表格.quit()调用.建空表(8) '五年级Call 调用.工作表命名(5) : Call 调用.成绩册(5)调用.工作簿.SaveAs("C:\Documents andSettings\Administrator\桌面\成绩统计\五年级.xls")调用.工作簿.close()调用.电子表格.quit()调用.建空表(8) '六年级Call 调用.工作表命名(6) : Call 调用.成绩册(6)调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\六年级.xls")调用.工作簿.close()调用.电子表格.quit()Call 调用.建空表(1) '学校总评Dim nj(6) As Stringnj(1) = "一年级" : nj(2) = "二年级" : nj(3) = "三年级" : nj(4) = "四年级" : nj(5) = "五年级" : nj(6) = "六年级"'建立积分表Dim 工作表= 调用.工作簿.Worksheets("sheet1")工作表.Name = "学校积分"工作表.Range(工作表.Cells(1, 1), 工作表.Cells(1, 9)).MergeCells = True工作表.Cells(1, 1) = "学校积分统计表"工作表.Cells(2, 1) = "学校"工作表.Cells(3, 1) = "南村小学"工作表.Cells(4, 1) = "东风小学"工作表.Cells(5, 1) = "兴中小学"工作表.Cells(6, 1) = "尧场小学"For i = 1 To 6工作表.Cells(2, i + 1) = nj(i) + "积分"Next工作表.Cells(2, 8) = "均积分"工作表.Cells(2, 9) = "名次"工作表.Range(工作表.Cells(2, 1), 工作表.Cells(6, 9)).Borders.LineStyle = 1 '表格加线Dim h = 6, l = 9单元格= 工作表.Range(工作表.Cells(1, 1), 工作表.Cells(h, l)) '设置行高和列宽单元格.HorizontalAlignment = Excel.Constants.xlCenter '水平居中单元格.RowHeight = 工作表.Application.CentimetersToPoints(Math.Round((21.3 - 3 * 2) / h, 2))工作表.Range(工作表.Cells(2, 1), 工作表.Cells(11, 1)).ColumnWidth = 16.13工作表.Range(工作表.Cells(2, 2), 工作表.Cells(h, l)).ColumnWidth = Math.Round((29.7 - 3.69 - 1.9 *2) / (l - 1) * 4.374, 2)工作表.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape '横向打印调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\学校总评.xls")调用.工作簿.close()调用.电子表格.quit()Call 调用.建空表(2)调用.上报表()调用.工作簿.SaveAs("C:\Documents and Settings\Administrator\桌面\成绩统计\上报.xls")调用.工作簿.close()调用.电子表格.quit()MessageBox.Show("生成的‘成绩统计’文件夹已存在桌面。
VB中对Excel编程操作实例
vb excel编程技巧,实例,格式,合并单元格,表格线,页面横
向
Dim xlApp As excel.Application
Dim xlBook As excel.Workbook
Dim xlSheet As excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
Dim xRange As excel.Range
Dim m5 As String
Dim msgss As Boolean
'On Error GoTo 99
With xlSheet
If abcd = True Then tmp2 = "台," Else tmp2 = "个,"
If dataM > 5 Then m5 = " 数量:" & dataM &
tmp2 Else m5 = " "
.Cells(1, 1).Value = lb1.Caption & m5 &
Label15.Caption
.Cells(2, 1).Value = "基本信息"
.Cells(6, 1).Value = "额定性能" & Chr(10) &
Text1.Text & "rpm"
.Cells(11, 1).Value = "堵转"
.Columns(1).ColumnWidth = 8 '表格宽度
.Columns(2).ColumnWidth = 18 '表格宽度
'.Range(.Cells(1, 1), .Cells(1, 5)).MergeCells = True '合并
.Range(.Cells(2, 1), .Cells(5, 1)).MergeCells = True '合并单元
格
.Range(.Cells(6, 1), .Cells(10, 1)).MergeCells = True '合并单元
格
.Range(.Cells(11, 1), .Cells(13, 1)).MergeCells = True '合并单
元格
.Range(.Cells(1, 1), .Cells(13, dataM + 2)).Borders.LineStyle =
xlContinuous '表格线
.Range(.Cells(2, 1), .Cells(13, dataM +
2)).HorizontalAlignment = xlCenter
.Cells(1, 1).Font.Size = 12
.Cells(1, 1).Font.Name = "黑体"
.rowS(1).RowHeight = 30'行高
For i = 2 To 13
.rowS(i).RowHeight = 20
Next
For i = 0 To dataM
.Columns(i + 3).ColumnWidth = 15 '表格宽度
If i <> 0 Then .Cells(2, i + 2).Font.Size = 5
.Cells(2, i + 2).Value = Label1(i).Caption
If dataM > 5 And i <> 0 And abcd = True Then
.Cells(3, i + 2).Value = Trim(Left(Right(Label1(i).Caption, 7),
3))
Else
.Cells(3, i + 2).Value = Label2(i).Caption
End If
If i = 0 Or dataM < 6 Then .Cells(3, i + 2).Value =
Label2(i).Caption
.Cells(4, i + 2).Value = Label3(i).Caption
.Cells(5, i + 2).Value = Label4(i).Caption
.Cells(6, i + 2).Value = Label5(i).Caption
.Cells(7, i + 2).Value = Label6(i).Caption
.Cells(8, i + 2).Value = Label7(i).Caption
.Cells(9, i + 2).Value = Label8(i).Caption
.Cells(10, i + 2).Value = Label9(i).Caption
.Cells(11, i + 2).Value = Label10(i).Caption
.Cells(12, i + 2).Value = Label11(i).Caption
.Cells(13, i + 2).Value = Label12(i).Caption
Next
'设置格式
'.Columns(10).NumberFormatLocal = "0.00_ "
.rowS(6).NumberFormatLocal = "0.000_ "
.rowS(7).NumberFormatLocal = "0.0_ "
.rowS(8).NumberFormatLocal = "0.0000_ "
.rowS(9).NumberFormatLocal = "0_ "
.rowS(10).NumberFormatLocal = "0_ "
.rowS(11).NumberFormatLocal = "0.000_ "
.rowS(12).NumberFormatLocal = "0.0_ "
.rowS(13).NumberFormatLocal = "0_ "
'.rowS(7).Hidden = True
'.rowS(8).Hidden = True
'.rowS(10).Hidden = True
'.rowS(12).Hidden = True
'.Names = lb1.Caption
.PageSetup.Orientation = 2'页面为横向
End With
98
If toexcel = 1 Then
If abcd = True Then tmp2 = "台数据 " Else tmp2 = "个数据
"
If dataM > 5 Then
xlBook.SaveAs File1.Path & "\" &
Right(lb1.Caption, Len(lb1.Caption) - 5) & "(" &
dataM & tmp2 & Text1.Text & "rpm).xls"
msgss = True
tmp = File1.Path & "\" & Right(lb1.Caption,
Len(lb1.Caption) - 5) & "(" & dataM & tmp2
& Text1.Text & "rpm).xls"
Else
If Len(pathIs) < 5 Then
xlBook.SaveAs Left(File1.Path, Len(File1.Path) -
(Len(File1.Path) - InStrRev(File1.Path, "\"))) &
Right(lb1.Caption, Len(lb1.Caption) - 5) & ".xls"
Else
xlBook.SaveAs File1.Path & "\" & pathIs
& "(" & Text1.Text & "rpm).xls"
msgss = True
tmp = File1.Path & "\" & pathIs & "("
& Text1.Text & "rpm).xls"
End If
End If
xlBook.Close
If msgss = True Then MsgBox "转换成功!文件位于 [ "
& tmp & " ]"
End
Else
xlApp.Visible = True '显示表格o
Set xlApp = Nothing '交还控制给Excel
End If
Exit Sub
99 i = 0 '有问题
End Sub
本文来源于Eddy Blog http://www.rrgod.com/ , 原文地址:
http://www.rrgod.com/program/558.html