用VB操作Excel(VB6.0)(整理)
- 格式:doc
- 大小:55.50 KB
- 文档页数:11
vb6.0如何操作excelvb6.0如何操作excel(该内容为网上网友提问,网友解答)vb如何对excel表格进行操作,如对单元格插入内容清除、修改单元格内容打印表格内容问题补充:我不要用宏假如我想修改D:\\ABC.xls 的文件的A1单元格内容vb语句如何填写打印出这个文件的内容语句如何处理_______________________________________请问mafan8 如果要修改程序所在目录下的文件,路径怎么写?打印到指定打印机上怎么操作?谢谢来,给你加分___________________________________打印出来有内容,可以表格里没有啊修改文件目录你可以直接改变量p的值,改变单页格需要改变cells(row,col)中的row,col 参数,对于打印机你首先要读取你本地所有打印机的名称,你可以把打印机设置成默认,然后输出objExcel.Application.ActivePrinter的值,读取这些值后在设置objExcel.Application.ActivePrinter的值,即设置默认打印机,比较麻烦,程序里我改了一点就是打开excel文件后直接调出打印设置窗口,你自己选择打印机打印下面代码已经改成自动保存了Private Sub Command1_Click()p = "c:\\book1.xls" '这里改你文件的路径Set objexcel = CreateObject("Excel.Application") '创建excel 工程Set xlBook = objexcel.Workbooks.Open(p) '打开d盘abc.xls Set xlsheet = xlBook.Worksheets("sheet1") '打开表sheet1objexcel.Visible = True '设置excel可见或不可见xlsheet.cells(1, 1) = "123" 'cells(1,1)表示A1,第一行第一列,B1表示为cells(1,2)xlBook.saved = True '不提示是否保存,直接保存文件objexcel.ActiveWorkbook.SaveOn Error GoTo lap1'objExcel.ActiveWindow.SelectedSheets.PrintOut , , , False '直接通过默认打印机打印这个表objexcel.Application.Dialogs(8).Show '调出excel打印设置窗口lap1:objexcel.Application.Quit '退出excel程序Set xlsheet = NothingSet xlBook = NothingSet objexcel = NothingEnd Sub装VB和Excel后直接用VBA,代码简单快捷。
用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。
预备知识和操作在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。
由于你的Excel版本不同,所以这个选项的版本号也是不同的。
因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application对象,即Excel本身;第二层:workbooks对象集,指Excel的工作簿文件第三层:worksheets对象集,表示的是Excel的一个工作表;第四层:Cells和Range对象,指向Excel工作表中的单元格。
1从"工程"菜单中选择"引用"栏;选择Microsoft Excel 11.0 Object Library(EXCEL2003),然后选择" 确定"。
2关键代码Dim newxls As Excel.ApplicationDim newbook As Excel.WorkbookDim newsheet As Excel.WorksheetSet newxls=CreatObject("Excel.Application")Set newbook=newxls.Worksbooks.AddSet newsheet=newbook.Worksheets(1)newxls.Visible = True '这一句很关键,编程语言中show和visible应该还起初始化的作用。
newxls.Workbooks.Open FileName:=App.Path & "备件库存查询" + mydate + ".xls"3 newxls.Visible := True '显示当前窗口4 newxls.Caption := "应用程序调用Microsoft Excel" '更改Excel 标题栏5 newxls.Workbooks.Add '添加新工作簿6 newxls.Workbooks.Open("C:\Excel\Demo.xls") '打开已存在的工作簿newxls.Workbooks.Open FileName:=App.Path & "备件库存查询" + mydate + ".xls"7 newxls.WorkSheets[2].Activate '设置第2个工作表为活动工作表newxls.WorkSheets["Sheet2"].Activate8 newxls.Cells[1,4].Value := "第一行第四列" '给单元格赋值newsheet.Cells(1, 4) = "备件名称"9 newxls.ActiveSheet.Columns[1].ColumnsWidth := 5'设置指定列的宽度单位:字符个数以第一列为例10 newxls.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米设置指定行的高度,单位为磅,1磅=0.035厘米,以第二行为例11 在第8行之前插入分页符newxls.WorkSheets[1].Rows[8].PageBreak := 1在第4列之前删除分页符newxls.ActiveSheet.Columns[4].PageBreak := 012 关键代码Visual Basic6.0在excel中的range方法Sub Random()Dim myRange As RangeSet myRange = Worksheets("Sheet1").Range("A1:D5") '注意区域Range为二四象限对角线区域myRange.Formula = "=RAND()"myRange.Font.Bold = TrueEnd Sub13 关键代码Row = ActiveSheet.Range("A1:A679").Find("1-101").Row如果找不到1-101会崩溃Dim c As RangeSet c=ActiveSheet.Range("A1:A679").Find("1-101")If Not c Is Nothing Then '找到Set Row=c.RowElse '找不到'加入自已要处理的语句End If14 newxls.ActiveSheet.Range["B3:D4"].Borders[2].Weight := 3 '指定边框线宽度1-左2-右3-顶4-底5-斜( \ ) 6-斜( / )15 newxls.ActiveSheet.Cells[1,4].ClearContents '清除第一行第四列单元格公式16 newxls.ActiveSheet.Rows[1] := '隶书' '设置第一行字体属性:newxls.ActiveSheet.Rows[1].Font.Color := clBluenewxls.ActiveSheet.Rows[1].Font.Bold := Truenewxls.ActiveSheet.Rows[1].Font.UnderLine := True17 进行页面设置a.页眉newxls.ActiveSheet.PageSetup.CenterHeader := "报表演示"b.页脚newxls.ActiveSheet.PageSetup.CenterFooter := "第&P页"c.页眉到顶端边距2cm:newxls.ActiveSheet.PageSetup.HeaderMargin := 2/0.035d.页脚到底端边距3cm:newxls.ActiveSheet.PageSetup.HeaderMargin := 3/0.035e.顶边距2cm:newxls.ActiveSheet.PageSetup.TopMargin := 2/0.035f.底边距2cm:newxls.ActiveSheet.PageSetup.BottomMargin := 2/0.035g.左边距2cm:newxls.ActiveSheet.PageSetup.LeftMargin := 2/0.035h.右边距2cm:newxls.ActiveSheet.PageSetup.RightMargin := 2/0.035i.页面水平居中:newxls.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035j.页面垂直居中:newxls.ActiveSheet.PageSetup.CenterV ertically := 2/0.035k.打印单元格网线:newxls.ActiveSheet.PageSetup.PrintGridLines := True '这一条要注意使用18 拷贝操作a.拷贝整个工作表:ed.Range.Copyb.拷贝指定区域:newxls.ActiveSheet.Range["A1:E2"].Copyc.从A1位置开始粘贴:newxls.ActiveSheet.Range.["A1"].PasteSpeciald.从文件尾部开始粘贴:newxls.ActiveSheet.Range.PasteSpecial19 插入一行或一列a. newxls.ActiveSheet.Rows[2].Insertb. newxls.ActiveSheet.Columns[1].Insert20 删除一行或一列a. newxls.ActiveSheet.Rows[2].Deleteb. newxls.ActiveSheet.Columns[1].Delete21 打印预览工作表newxls.ActiveSheet.PrintPreview '这一条要注意使用22 打印输出工作表newxls.ActiveSheet.PrintOut '这一条要注意使用23 工作表保存If not newxls.ActiveWorkBook.Saved thennewxls.ActiveSheet.PrintPreviewEnd if24 工作表另存为newxls.SaveAs("C:\Excel\Demo1.xls")25 存盘ExcelID.ActiveWorkBook.Saved := True26 关闭工作簿ExcelID.WorkBooks.Close27 退出ExcelExcelID.Quit28 设置工作表密码ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True29 EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized30 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized31 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 332 关闭时是否提示保存(true 保存;false 不保存)ExcelID.DisplayAlerts = False33 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True34 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"35 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""36 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPreview37 设置显示比例ExcelID.ActiveWindow.Zoom = 10038 让Excel 响应DDE 请求Ex.Application.IgnoreRemoteRequests = False编程例子用VB操作EXCELPrivate 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(1).Name = "book2" '修改工作薄名称objExl.Sheets("book2").Select '选中工作薄<book2>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 = 7 '拆分前七列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。
VB打开EXCEL的方法在Visual Basic中,可以使用多种方法打开Excel文件。
以下是其中一些常用的方法。
1. 使用Excel对象库:使用Excel对象库可以直接在VB中打开Excel文件,并获取其内容。
首先,需要在VB项目中引用Excel对象库。
打开VB项目,在树状视图中选择"项目",然后选择"引用"。
在"可用组件"中找到"Microsoft Excel x.x Object Library"(其中 x.x 是Excel的版本号),勾选并点击"确定"。
接下来,可以使用以下代码打开Excel文件:```vbImports Excel = Microsoft.Office.Interop.ExcelDim xlApp As Excel.ApplicationDim xlWorkbook As Excel.WorkbookDim xlWorksheet As Excel.Worksheet' 创建Excel应用程序对象xlApp = New Excel.ApplicationxlApp.Visible = True' 打开Excel文件xlWorkbook =xlApp.Workbooks.Open("C:\path\to\your\excel\file.xlsx") xlWorksheet = xlWorkbook.Worksheets(1) ' 打开第一个工作表```通过以上代码,将打开Excel文件并将第一个工作表赋值给xlWorksheet 变量。
2. 使用OleDb连接:除了使用Excel对象库,还可以使用OleDb连接字符串来打开Excel 文件。
这种方法不需要引用Excel对象库,并且适用于各种版本的Excel 文件。
```vbImports System.Data.OleDbDim connectionString As String ="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\path\to\your\excel\file.xlsx;Extended Properties=Excel 12.0"Dim connection As OleDbConnection = NewOleDbConnection(connectionString)Dim adapter As OleDbDataAdapterDim dataSet As DataSet'打开连接connection.Open' 读取Excel数据dataSet = New DataSetadapter.Fill(dataSet)' 将数据加载到DataGridView控件DataGridView1.DataSource = dataSet.Tables(0)'关闭连接connection.Close```以上代码使用OleDb连接字符串连接到Excel文件,并将数据加载到DataSet中。
用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方法汇总用VB操作excel方法汇总Private Sub Command3_Click()Dim 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 & 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 SubEnd Sub全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := True;2) 更改Excel 标题栏:ExcelID.Caption := '应用程序调用Microsoft Excel';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) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreviewEnd if21) 工作表另存为:ExcelID.ActiveWorkbook.SaveAsFileName:="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, 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 = 100Excel 语句集300定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoT o 0 '恢复正常的错误提示(5) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示(6) Application.ScreenUpdating=False '关闭屏幕刷新Application.ScreenUpdating=True '打开屏幕刷新(7) Application.Enable.CancelKey=xlDisabled '禁用Ctrl+Break中止宏运行的功能工作簿(8) Workbooks.Add() '创建一个新的工作簿(9) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿(10) ThisWorkbook.Save '保存工作簿(11) ThisWorkbook.close '关闭当前工作簿(12) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数(13) '返回活动工作薄的名称(14) ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小(16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化工作表(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=ActiveWorkbook. _Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2(24) Sheets(“sheet1”).Delete或Sheets(1).Delete '删除工作表1(25) ActiveWorkbook.Sheets(i).Name '获取工作表i的名称(26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示(28) edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(30) ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2 '将页面设置更改为横向(31)ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=erName‘将用户名放置在活动工作表的页脚单元格/单元格区域(32) ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select '选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select ‘选定当前工作表的所有单元格(34) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ‘偏移一列Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行(38) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(39) ActiveWindow.RangeSelection.Value=XX '将值XX输入到所选单元格区域中(40) ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(41) Selection.Count '当前选中区域的单元格数(42)GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto: ,””) ‘返回单元格中超级链接的地址并赋值(43) TextColor=Range(“A1”).Font.ColorIndex ‘检查单元格A1的文本颜色并返回颜色索引Range(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(44) cells.count ‘返回当前工作表的单元格数(45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3行,向右4列的单元格(46) Cells.Item(5,”C”) ‘引单元格C5Cells.Item(5,3) ‘引单元格C5(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)或 Range(“A1”).Offset(4,5) ‘指定单元格F5(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)Rnage(“B3”).Resize(11,3) ‘创建B3:D13区域(49) Range(“Data”).Resize(,2) ‘将Data区域扩充2列(50) Union(Range(“Data1”),Range(“Data2”)) ‘将Data1和Data2区域连接(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘返回Data1和Data2区域的交叉区域(52) Range(“Data”).Count ‘单元格区域Data中的单元格数Range(“Data”). Columns.Count ‘单元格区域Data中的列数Range(“Data”). Rows.Count ‘单元格区域Data中的行数(53) Selection.Columns.Count ‘当前选中的单元格区域中的列数Selection.Rows.Count ‘当前选中的单元格区域中的行数(54) Selection.Areas.Count ‘选中的单元格区域所包含的区域数(55) edRange.Row ‘获取单元格区域中使用的第一行的行号(56) Rng.Column ‘获取单元格区域Rng左上角单元格所在列编号(57)ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)‘在活动工作表中返回所有符合条件格式设置的区域(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生的第3个字段的下拉列表名称(59) Range(“A1:C3”).Name=“computer”‘命名A1:C3区域为computer或Range(“D1:E6”).Name=“Sheet1!book”‘命名局部变量,即Sheet1上区域D1:E6为book或Names(“computer”).Name=“robot”‘将区域computer重命名为robot(60) Names(“book”).Delete ‘删除名称(61) Names.Add Name:=“ContentList”,_RefersT o:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))”‘动态命名列(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar”‘命名字符串CompanyCar(63) Names.Add Name:=“T otal”,RefersTo:=123456 ‘将数字123456命名为T otal。
使用Vb控制EXCEL表的惯常方法VB是常用的应用软件开发工具,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
一、 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封装成DLL【前言】:网上由于封装的例子和教程太零散,故系统地揭开封装神秘的面纱。
【步骤】:1、启动VB6.0程序,新建“ActiveX DLL”。
2、勾选VB对Excel的引用:(1) Microsoft Excel x.0 Object Library ;(2) Microsoft Office x.0 Object Library 。
3、在VB中编写需封装的功能代码。
(1)将工程名“工程1”改为“符合功能的名字”——如“海纳百川测试”,将类模块名“Class1”也改为另一个“符合功能的名字”——如“删除重复项”。
(说明:符合命名规则任意改为某某名,改名主要是为了区别和方便调用)(2)编写功能代码。
Sub 删重()Dim dic As ObjectDim xlApp As Excel.Application '针对GetObject获取已打开的Excel对象'Dim xlApp As New Excel.Application '针对CreateObject创建新的Excel对象Dim exWb As Excel.WorkbookDim exSh As Excel.WorksheetDim r As LongSet xlApp = GetObject(,"excel.application") '获取已打开的Excel对象'Set xlApp = CreateObject("excel.application") '创建新的Excel对象Set exWb = xlApp.ActiveWorkbook '获取当前活动工作簿'Set exWb = xlApp.Workbooks.Add '创建新的工作簿Set exSh = exWb.ActiveSheet '获取当前活动工作表'Set exSh = exWb.WorkSheets(1) '设置第一个工作表Set dic = CreateObject("scripting.dictionary")Dor = r + 1dic(exSh.Cells(r, 1).Value) = ""Loop Until exSh.Cells(r, 1) = ""exSh.Cells(1, 3).Resize(dic.Count) =Application.Transpose(dic.keys)Set dic = NothingSet xlApp=NothingSet exWb=NothingSet exSh=NothingEnd Sub4、点击——“文件”——“生成海纳百川测试.dll”——保存到指定位置。
用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进行操作。
vb6中Excel的设置不能单一设置一个CELL的大小,你只能设置该列和该行的大小,另外设置边框:with xlSheetsheetwork1.Range(.Cells(1, 1), .Cells(Irowcount + 1, _ Icolcount)).Borders.LineStyle= xlContinuousend with其中LineStyle 可为下列XlLineStyle 常量之一:xlContinuous、xlDash、xlDashDot、xlDashDotDot、xlDot、xlDouble、xlSlantDashDot 或xlLineStyleNone。
Variant 类型,可读写。
不是sheet设置为null,而是NOTHINGSET SHEET=NOTHINGTop2 楼sqfeiyu(流星雨)回复于2004-04-12 20:53:25 得分20只能设置该列和该行的大小.activesheet.rows(i)=20 '====設置列高.activesheet.cols(i)=10 '====設置行寬释放了内存:.activeworkbook.closeset excelApplication=nothing Top3 楼daisy8675(莫依沉迷)回复于2004-04-12 20:56:09 得分2Mark Top4 楼MSTOP(陈建华)回复于2004-04-12 21:06:39 得分35'设置行高,列宽.Cells.SelectSelection.RowHeight = 16Selection.ColumnWidth = 12'设置A1:F19的边框Range("A1:F19").SelectSelection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithWith Selection.Borders(xlEdgeT op).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithWith Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithWith Selection.Borders(xlEdgeRight).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithWith Selection.Borders(xlInsideVertical).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithWith Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous.Weight = xlThin.ColorIndex = xlAutomaticEnd WithRange("E10").Select Top5 楼legsion(小风)回复于2004-04-12 21:59:36 得分0谢谢各位高手鼎力相助,我回去试试看,一旦成功马上回来揭帖Top6 楼zhp80(zhp80)回复于2004-04-13 12:33:17 得分2肯定成功!T op7 楼passer_wave(路人)回复于2004-04-13 12:35:36 得分2试试先T op8 楼gys_yxr(毛毛)回复于2004-04-13 12:54:29 得分2OFFICE 的帮助里有的呀Top9 楼vansoft(Vansoft Workroom)回复于2004-04-13 14:50:48 得分0 示例:'设置当前当前工作簿的第一张工作表的第1行高度为20 ActiveWorkbook.Sheets(1).Rows(1).RowHeight = 20'设置当前当前工作簿的第一张工作表的第1列宽度为20 ActiveWorkbook.Sheets(1).Columns(1).ColumnWidth = 20 /doc/332320274.html,(新任版主,欢迎光临。
vb6 引用excel在VB6中引用Excel,可以通过以下步骤实现:1. 首先,确保你的计算机上已经安装了Excel软件,这样你才能在VB6中成功引用Excel对象库。
2. 打开你的VB6项目,然后点击菜单栏上的 "项目" -> "引用"。
3. 在 "可用引用" 列表中找到 "Microsoft Excel xx.x Object Library"(xx.x代表Excel的版本号),勾选它。
4. 点击 "确定" 按钮,这样就成功在你的VB6项目中引用了Excel对象库。
一旦你成功引用了Excel对象库,你就可以在VB6中使用Excel对象来操作Excel文件。
例如,你可以使用下面的代码来创建一个Excel应用程序对象并打开一个工作簿:vb.Dim xlApp As Excel.Application.Dim xlBook As Excel.Workbook.Set xlApp = New Excel.Application.Set xlBook =xlApp.Workbooks.Open("C:\YourExcelFile.xlsx")。
' 现在你可以对xlBook进行操作,比如读写数据,设置格式等。
' 操作完成后记得释放对象。
xlBook.Close.xlApp.Quit.Set xlBook = Nothing.Set xlApp = Nothing.通过上述步骤和代码,你就可以在VB6中成功引用并操作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进行操作。
VB6.0调⽤Excel制作任意表格在VB中制作报表⼀般来讲有三种⽅法:1、直接使⽤VB6.0中⾃带的Data Report 来做,这种⽅法有很⼤的局限性,对于⽐较规则的报表,但对于⽐较复杂的报表,⽐如说⼀张报表,上部分是⼈员的⼯资,下部分是⼈员的各⽇的考勤,使⽤这种⽅法就⽆能为⼒。
2、使⽤直接的打印⽅法,即Printer.print ,这种⽅法直接向打印机打印,就象过去使⽤Foxpro 似的,需要进⾏打印机定位,并且在Windows下,不同的字符数字所占的宽度也不相同,所以这种⽅法使⽤起来⾮常⿇烦。
3、使⽤微软的Excel。
本⽂重点讨论⽤Excel来制作报表所涉及的问题。
我们⽤Excel做报表时,不仅是将所要的内容填到Excel的⼯作表中,⽽且还需要填写公式、定义合适的格式(格线、字体、对齐)等。
Excel的每张⼯作表是由若⼲⾏、若⼲列构成的,⾏列的交叉形成的⼩格称作单元格。
我们正好可以⽤这些现成的单元格来做我们的报表的相应的格。
为了程序简单,可以将报表的模板做好,如表头,相应的⾏⾼、列宽、字体、对齐调整好(事实上,这些也可以通过程序来实现,只是⿇烦点。
),然后利⽤VB程序来操纵 Excel。
这⾥我们以SQL SERVER 7.0为后台数据。
⾸先定义好需要的变量,在VB6.0的菜单“⼯程\引⽤”中确保 Microsoft Excel 8.0 Object Library(在Excel2000中,此处为Excel 9.0)复选框选中。
再向Excel⼯作表中填⼊数据:Dim VBExcel As Excel.ApplicationDim xlbook As Excel.Workbook 定义Excel⼯作簿对象Dim xlsheet As Excel.Worksheet 定义Excel⼯作表对象Dim rssalary As New ADODB.Recordset 定义记录集rssalary.Open SQLStrsalary, CNstring, adOpenStatic, adLockReadOnlyrssalary 为已计算好的⼯资数据记录集。
Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,“全球绝大多数Windows应用程序都是用VB开发的”;Excel是目前使用最广泛的办公应用软件之一,它具有强大的数学分析与计算功能,包括很多VB没有的求值数学表达式的函数和方法。
由于Excel的应用程序对象是外部可创建的对象,所以能从VB应用程序内部来程序化操纵Excel。
本文结合自己的实践和体会,谈谈如何在VB6.0应用程序中调用Exce12000,供大家参考。
一、Excel对象模型为了在VB应用程序中调用Excel,必须要了解Excel对象模型。
Excel对象模型描述了Excel的理论结构,所提供的对象很多,其中最重要的对象,即涉及VB调用Excel最可能用到的对象有:二、调用Excel在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。
1、在VB工程中添加对Excel类型库的引用为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。
具体步骤如下:a)从VB5“工程”菜单中选择“引用”;b)在“引用”对话框中选择Excel类型库:"Microsoft Excel9.0 Object Library";c)单击左边小方框,使之出现“√”符号;d)按“确定”退出。
注:要想在VB应用程序中调用Excel,你的计算机系统中必须安装Excel。
2、引用Application对象Application对象是Excel对象模型的顶层,表示整个Excel应用程序。
在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。
为此,首先要声明对象变量:或直接声明为Excel对象:在声明对象变量之后,可用CreateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。
Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection) '' Dim tmp1Dim i1 As Integer, intCol As Integer, intRow As IntegerDim xlApp As New Excel.ApplicationDim xlBook As New Excel.WorkbookDim xlSheet As New Excel.WorksheetDim strName As String, strArray1() As StringDim strS1 As StringDim strD1 As StringstrS1 = CurrentProject.Path + "\template.xls"strD1 = CurrentProject.Path + "\" + CStr(Format(Now, "YYYYMMDDHHMMSS")) + "aaa1.xls"' For i1 = 0 To UBound(strTmp1) - 1' Debug.Print strTmp1(i1) + " " + CStr(i1)' Next i1' strName = CurrentProject.Path + "\aaa1.xls"FileCopy strS1, strD1Set xlApp = CreateObject("Excel.Application")xlApp.Visible = False' Set xlBook = xlApp.Workbooks.Open(strName)Set xlBook = xlApp.Workbooks.Open(strD1)Set xlSheet = xlBook.Worksheets(1)With xlSheet.Range("F6").Value = strTmp1(1).Range("H6").Value = strTmp1(2).Range("F7").Value = CStr(Date).Range("E10").Value = strTmp1(9).Range("A15").Value = "To: " + strTmp1(8).Range("B26").Value = strTmp1(4) + "PACKAGES" .Range("B27").Value = strTmp1(5) + "KGS".Range("B28").Value = strTmp1(6) + "KGS".Range("B29").Value = strTmp1(7) + "M3"End WithintCol = 1intRow = 21For i1 = 1 To colTmp1.CountstrArray1 = colTmp1.Item(i1)With xlSheet.Cells(intRow, 1).Value = strArray1(2).Cells(intRow, 2).Value = strArray1(5).Cells(intRow, 4).Value = strArray1(6).Cells(intRow, 5).Value = strArray1(1).Cells(intRow, 6).Value = strArray1(3).Cells(intRow, 7).Value = strArray1(4).Cells(intRow, 8).Value = strArray1(7).Cells(intRow, 9).Value = strArray1(9)intRow = intRow + 1xlApp.ActiveSheet.Rows(intRow).Insert.Cells(intRow, 1).Value = strArray1(8)intRow = intRow + 1xlApp.ActiveSheet.Rows(intRow).InsertEnd WithintRow = intRow + 1xlApp.ActiveSheet.Rows(intRow).InsertNext i1xlApp.Visible = TruexlBook.Save' xlBook.CloseSet xlSheet = NothingSet xlBook = Nothing' xlApp.Quit' tmp1 = Shell(strName, 1)' hWndDesk = GetDesktopWindow()' r = ShellExecute(hWndDesk, "Open", strName, vbNullString, 0&, 1)End SubDim xlApp As New Excel.ApplicationDim xlBook As New Excel.WorkbookDim xlSheet As New Excel.WorksheetPublic Sub exportExcel()'Dim strA1() As String, strA2() As String, strTmp1 As String, strDATE AsString, strName As String, strValue As StringDim intFieldLength As Integer, i1 As Integer, i2 As Integer, lngCount AsLongDim rs1 As DAO.RecordsetstrTmp1 ="A1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,AA1 strA1 = Split(strTmp1, ",")Set xlApp = CreateObject("Excel.Application")xlApp.Visible = FalseSet xlBook = xlApp.Workbooks.AddstrDATE = CStr(Format(Date, "YYYY-MM-DD"))monDialog1.DefaultExt = "xls"monDialog1.Filename = "帐单输出" + strDATE + ".xls" monDialog1.Filter = "EXCEL FILE(*.xls)|*.xls"monDialog1.ShowSavestrName = monDialog1.FilenamexlBook.SaveAs strNameSet xlBook = xlApp.Workbooks.Open(strName)Set xlSheet = xlBook.Worksheets(1)strSQL = "SELECT * FROM HEADCOST1; "Set rs1 = CurrentDb.OpenRecordset(strSQL)rs1.MoveLastDebug.Print rs1.RecordCountlngCount = rs1.RecordCountintFieldLength = rs1.Fields.Count' Debug.Print intFieldLengthDebug.Print intFieldLengthstrA2() = Split(splitTable("HEADCOST1"), ",")Debug.Print UBound(strA2)With xlSheetFor i1 = 0 To intFieldLength - 1Debug.Print i1Debug.Print strA1(i1).Range(strA1(i1)).Value = getZValue(strA2(i1))Next i1End WithIf rs1.RecordCount <> 0 Thenrs1.MoveFirstFor i1 = 1 To lngCountFor i2 = 1 To rs1.Fields.CountIf IsNull(rs1(i2 - 1)) ThenstrValue = " "ElsestrValue = rs1(i2 - 1).ValueEnd IfxlSheet.Cells(i1 + 1, i2) = strValueNext i2rs1.MoveNextNext i1rs1.MoveFirstElseMsgBox "未读取到数据", vbCritical, "错误" End IfxlBook.SavexlBook.CloseSet xlSheet = NothingSet xlBook = NothingxlApp.QuitSet xlApp = Nothingrs1.CloseSet rs1 = NothingEnd SubPrivate Sub Command1_Click()Set xlApp = CreateObject("Excel.Application") xlApp.Visible = FalseSet xlBook = xlApp.Workbooks.AddDim strDate As String, strName As String, strValue As StringstrDate = CStr(Format(Date, "yyyy-mm-dd"))monDialog1.DefaultExt = "xls"monDialog1.FileName = "SEND3B2" + strDate + ".xls"monDialog1.Filter = "EXCEL FILE(*.xls)|*.xls"monDialog1.ShowSavestrName = monDialog1.FileNameDebug.Print strNamexlBook.SaveAs strNameSet xlBook = xlApp.Workbooks.Open(strName)Set xlSheet = xlBook.Worksheets(1)' For i1 = 0 To Me.DataGrid1.Columns.Count - 1' xlSheet.Cells(1, i1 + 1) = Me.DataGrid1.Columns.Item(j).Caption ' Next i1With xlSheet.Range("A1").Value = "ORDERKEY".Range("B1").Value = "EXTERNORDERKEY".Range("C1").Value = "MM".Range("D1").Value = "QTY".Range("E1").Value = "PRODUCTDESP".Range("F1").Value = "DIVISION".Range("G1").Value = "MOQ".Range("H1").Value = "OVERPACKQTY".Range("I1").Value = "OVERPACK ?".Range("J1").Value = "CTNQTY".Range("K1").Value = "OPCTNQTY".Range("L1").Value = "CTN_PALLET".Range("M1").Value = "PALLETNO".Range("N1").Value = "PALLETWEIGHT".Range("O1").Value = "PALLETVOLUME".Range("P1").Value = "PALLETLENGTH".Range("Q1").Value = "PALLETWIDTH".Range("R1").Value = "PALLETHIGH".Range("S1").Value = "DELIVERYDATE".Range("T1").Value = "CONSIGNEEKEY".Range("U1").Value = "C_COUNTRY".Range("V1").Value = "BILLTOKEY".Range("W1").Value = "INCOTERM".Range("X1").Value = "STATUS".Range("Y1").Value = "INTERMODALVEHICLE".Range("Z1").Value = "ORDERGROUP".Range("AA1").Value = "HAWB".Range("AB1").Value = "REQSHIPDATE".Range("AC1").Value = "RELEASEDDATE".Range("AD1").Value = "C_COMPANY"End WithIf Me.Adodc1.Recordset.RecordCount <> 0 ThenMe.Adodc1.Recordset.MoveFirstFor i1 = 1 To Me.Adodc1.Recordset.RecordCountFor i2 = 1 To Me.Adodc1.Recordset.Fields.CountIf IsNull(Me.Adodc1.Recordset.Fields(i2 - 1)) ThenstrValue = " "ElsestrValue = Me.Adodc1.Recordset.Fields(i2 - 1).Value ': Debug.Print strValueEnd IfxlSheet.Cells(i1 + 1, i2) = strValueNext i2Me.Adodc1.Recordset.MoveNextNext i1Me.Adodc1.Recordset.MoveFirstElseMsgBox "请先查询数据", vbCritical, "错误"End IfxlBook.SavexlBook.CloseSet xlSheet = NothingSet xlBook = Nothing' xlApp.Visible = TruexlApp.QuitSet xlApp = NothingEnd Sub用VB操作Excel(VB6.0)(整理)首先创建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,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 '将新建的工作薄数量设为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 SubDim excelfile As Excel.Application, excelwbook As Excel.Workbook, excelsheet As Excel.WorksheetPrivate Sub ImportExcelData()'On Error GoTo Err_ImportExcelDataDim strFile As StringDim strB1() As String, intTmp1 As IntegerDoCmd.RunSQL "DELETE * FROM APTmp "monDialog8.ShowOpenstrFile = monDialog8.FilenameDebug.Print strFileIf strFile = "" ThenMsgBox "没有选择文件", vbCritical, "错误"Exit SubEnd IfSet excelfile = New Excel.ApplicationSet excelwbook = excelfile.Workbooks.Open(strFile)Set excelsheet = excelwbook.Sheets(1)lastCol = edRange.Columns.CountlastRow = edRange.Rows.CountDebug.Print lastColDebug.Print lastRowDebug.Print excelsheet.Cells(1, 1)strB1 = Split(strFile, "\")intTmp1 = UBound(strB1)strFile = strB1(intTmp1)Debug.Print strFile' If checkFileName(strFile) = True Then' MsgBox "此文件名已经导入过,不可再导入", vbCritical, "错误" ' Exit Sub' End IfIf intChange = 2 ThenCall ImportAPData2(strFile)ElseCall ImportAPData(strFile)End Ifexcelwbook.Closeexcelfile.QuitSet excelfile = NothingSet excelwbook = NothingMsgBox "EXCEL数据导入完成", , "提示"Exit_ImportExcelData:Exit SubErr_ImportExcelData:MsgBox Err.DescriptionResume Exit_ImportExcelDataEndPrivate Sub ImportAPData(strTmp1 As String)'Dim i2 As Long, strTmp2 As String, boolTmp1 As BooleanFor i2 = 2 To lastRowDebug.Print excelsheet.Cells(i2, 7)If checkDN(Trim(CStr(excelsheet.Cells(i2, 7))), "APT") = True ThenIf checkRoute(Trim(CStr(excelsheet.Cells(i2, 5)))) = False ThenstrTmp2 = Trim(CStr(excelsheet.Cells(i2, 1)))boolTmp1 = TrueElsestrTmp2 = "WBLP"GoTo LOOP1End IfIf checkR8(Trim(CStr(excelsheet.Cells(i2, 8)))) = 1 Then GoTo LOOP1 ' 1 2 3 4 5 6 7 8 9 strSQL = "INSERT INTO APTmp ( OrderType, CreateDate, GIdate, ShipTo, Route, OriginDoc, DeliveryNum, LOCATION, HAWB ) "' strSQL = strSQL + "VALUES('" + Trim(CStr(excelsheet.Cells(i2, 1))) + "',"strSQL = strSQL + "VALUES('" + strTmp2 + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 2))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 3))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 4))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 5))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 6))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 7))) + "', "' If checkRoute(Trim(CStr(excelsheet.Cells(i2, 5)))) = False Then' strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 8))) + "') "' Else' strSQL = strSQL + "'" + addR8TSHAWB + "')"'' End If' strSQL = strSQL + "'" + strTmp1 + "'" + ") "If Trim(CStr(excelsheet.Cells(i2, 9))) = "" ThenstrSQL = strSQL + "'" + "R811" + "', "ElsestrSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 9))) + "', "End IfIf boolTmp1 = True ThenstrSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 8))) + "') "boolTmp1 = FalseElsestrSQL = strSQL + "'" + addR8TSHAWB + "')"boolTmp1 = FalseGoTo LOOP1End IfDebug.Print strSQLDoCmd.RunSQL strSQLLOOP1:strTmp2 = ""boolTmp1 = FalseEnd IfNext i2Call ImportTAPDataEnd Sub'INSERT INTO APTmp ( OrderType, CreateDate, GIdate, ShipTo, Route, OriginDoc, DeliveryNum, HAWB )'VALUES('1','1','1','1','1','1','1','1')Private Sub ImportAPData2(strTmp1 As String)'Dim i2 As Long, strTmp2 As String, boolTmp1 As BooleanFor i2 = 2 To lastRowDebug.Print excelsheet.Cells(i2, 10): Debug.Print excelsheet.Cells(i2, 7) If checkDN(Trim(CStr(excelsheet.Cells(i2, 10))), "APT") = True ThenIf checkRoute(Trim(CStr(excelsheet.Cells(i2, 5)))) = False ThenstrTmp2 = Trim(CStr(excelsheet.Cells(i2, 1)))boolTmp1 = TrueElsestrTmp2 = "WBLP"GoTo LOOP1End IfIf checkR8(Trim(CStr(excelsheet.Cells(i2, 12)))) = 1 Then GoTo LOOP1 ' 1 2 3 4 5 6 7 8 9 strSQL = "INSERT INTO APTmp ( OrderType, CreateDate, GIdate, ShipTo, Route, OriginDoc, DeliveryNum, LOCATION, HAWB ) "' strSQL = strSQL + "VALUES('" + Trim(CStr(excelsheet.Cells(i2, 1))) + "'," 2012-9-7 修改添加WBLP条款strSQL = strSQL + "VALUES('" + strTmp2 + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 3))) + "',"' strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 5))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 4))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 6))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 7))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 8))) + "',"strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 10))) + "', "' If checkRoute(Trim(CStr(excelsheet.Cells(i2, 5)))) = False Then' strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 8))) + "') "' Else' strSQL = strSQL + "'" + addR8TSHAWB + "')"'' End If' strSQL = strSQL + "'" + strTmp1 + "'" + ") "' If Trim(CStr(excelsheet.Cells(i2, 9))) = "" ThenstrSQL = strSQL + "'" + "R811" + "', "' Else' strSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 9))) + "', "' End IfIf boolTmp1 = True ThenstrSQL = strSQL + "'" + Trim(CStr(excelsheet.Cells(i2, 12))) + "') "boolTmp1 = FalseElsestrSQL = strSQL + "'" + addR8TSHAWB + "')"boolTmp1 = FalseGoTo LOOP1End IfDebug.Print strSQLDoCmd.RunSQL strSQLLOOP1:strTmp2 = ""boolTmp1 = FalseEnd IfNext i2Call ImportTAPDataEnd 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 Excel';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) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreview End 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:=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(VB6.0)(整理)2008-09-23 22:16:30| 分类:文章转载 | 标签:excel office |字号订阅用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.打印单元格网线:。
VB6.0控制EXCEL进行报表设计及打印!在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。
在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。
但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。
由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。
这样实现了Visual Basic应用程序对Excel的控制。
本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。
1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。
下面简单介绍一下其中最重要,也是用得最多的五个对象。
(1)Application对象:Application对象处于Excel对象层次结构的顶层,表示 Excel自身的运行环境。
(2)Workbook对象:Workbook对象直接地处于Application 对象的下层,表示一个Excel工作薄文件。
(3)Worksheet对象:Worksheet对象包含于Workbook对象,表示一个Excel工作表。
(4)Range对象:Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。
(5)Cells对象:Cells对象包含于Worksheet对象,表示Excel 工作表中的一个单元格。
如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel = New Excel.Applicationzsbexcel.Visible = True如要Excel不可见,可使zsbexcel.Visible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。
用VB操作Excel(VB6.0)(整理)、一、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进行操作。
Vb对excel操作的实例最近,由于工作关系,我用vb6.0做了一个计算成绩的软件,由于我不会数据库技术,同行对excel应用又比较普遍,所以就用vb6.0操作excel完成了成绩统计的任务。
先说说窗体,很简单,只运用了菜单,由此来调用程序代码。
截图如下:窗体命名为excel操作,共五个一级菜单。
创建表册用来制作所用表格。
计算成绩用来算成绩。
模拟运算用来测试软件,设置了两个子菜单,一个填随机生成的数据。
有了数据就可以计算成绩了,看看效果如何。
测试完了就可以清空数据了,清空成绩册中的基础数据以后再计算一次成绩就基本可以使表册恢复原样了。
其实,我这是多此一举,回头一想,只需要重新创建所用表册就行了。
还画蛇添足了俩菜单:计算器和退出。
代码也贴出来共享一下。
创建表册:一年级:Private Sub ynjkb_Click()Call 建空表(10)Call 工作表命名(1)Call 成绩册(1)Unload excel操作End Sub创建表册:二年级:Private Sub enjkb_Click()Call 建空表(10)Call 工作表命名(2)Call 成绩册(2)Unload excel操作End Sub三至六年级略了吧。
创建表册:学校总评:Private Sub xxzp_Click()nj(1) = "一年级": nj(2) = "二年级": nj(3) = "三年级": nj(4) = "四年级": nj(5) = "五年级": nj(6) = "六年级"Call 建空表(2)'建立积分表Sheets(1).Name = "学校积分"Sheets(2).Name = "积分"Sheets("学校积分").SelectRange("a1:i1").Merge[a1] = "学校积分统计表": [a2] = "学校": [a3] = "南村小学": [a4] = "东风小学": [a5] = "兴中小学": [a6] = "尧场小学"nj(1) = "一年级": nj(2) = "二年级": nj(3) = "三年级": nj(4) = "四年级": nj(5) = "五年级": nj(6) = "六年级"For i = 1 To 6Cells(2, i + 1) = nj(i) + "积分"NextCells(2, 8) = "均积分": Cells(2, 9) = "名次" Range([a1], [i6]).SelectSelection.HorizontalAlignment = xlCenterCall 表格加线(Range([a2], [i6]))Call 横排(6, 9)ActiveSheet.PageSetup.Orientation = xlLandscape Unload excel操作End Sub创建表册:上报:Private Sub shangbao_Click()Call 建空表(2)Sheets(1).Name = "中心校"Sheets("中心校").SelectCall 上报表("中心校")Sheets(2).Name = "普小"Sheets("普小").SelectCall 上报表("普小")Unload excel操作End Sub计算成绩:一年级:Private Sub yinianji_Click()Call 打开工作表Call 算成绩(1)kmb(1) = "语文": kmb(2) = "数学": kmb(3) = "英语" Sheets(kmb(1)).SelectFor i = 1 To 8 '记录一年级语文数据With bj(i).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(1).njxh = 1End WithNextSheets(kmb(2)).SelectFor i = 1 To 8 '记录一年级数学数据With bj(i + 8).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(2).njxh = 1End WithNextDim hgrs(8) '记录各学校合格人数For i = 1 To 8Sheets(xx(i)).Selectszl = Application.WorksheetFunction.Match("总分", Range([a2], [f2])) '总分所在列即合格人数所在列szh = Application.WorksheetFunction.Match("合格人数", Range(Cells(2, szl), Cells(80, szl))) '“合格人数”所在行hgrs(i) = Cells(szh + 2, szl)Next'向学校总评表过录一年级数据nj(1) = "一年级": nj(2) = "二年级": nj(3) = "三年级": nj(4)= "四年级": nj(5) = "五年级": nj(6) = "六年级"Workbooks.Open FileName:=ActiveWorkbook.Path & "\学校总评.xls"For i = 1 To 16With Sheets("积分")Sheets("积分").Select[a1] = "年级": [a2] = "学科": [a3] = "学校": [a4] = "人数": [a5] = "总分": [a6] = "及格人数": [a7] = "优秀人数": [a8] = "积分".Cells(1, i + 1) = nj(bj(i).njxh).Cells(2, i + 1) = bj(i).bjkm.Cells(3, i + 1) = bj(i).xxmc.Cells(4, i + 1) = bj(i).xkrs.Cells(5, i + 1) = bj(i).xkzf.Cells(6, i + 1) = bj(i).xkjgr.Cells(7, i + 1) = bj(i).xkyxr.Cells(8, i + 1) = bj(i).xkjfEnd WithNextWorkbooks.Open FileName:=ActiveWorkbook.Path & "\上报.xls"With Sheets("中心校") '过录中心校成绩.Cells(bj(1).njxh * 2 + 2, 3) = bj(1).xkrs + bj(2).xkrs + bj(6).xkrs '语文.Cells(bj(1).njxh * 2 + 2, 4) = bj(1).xkzf + bj(2).xkzf + bj(6).xkzf.Cells(bj(1).njxh * 2 + 2, 5) = Round(.Cells(bj(1).njxh * 2 + 2, 4) / .Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6) = bj(1).xkjgr + bj(2).xkjgr + bj(6).xkjgr.Cells(bj(1).njxh * 2 + 2, 7) = bj(1).xkyxr + bj(2).xkyxr + bj(6).xkyxr.Cells(bj(1).njxh * 2 + 2, 8) = hgrs(1) + hgrs(2) + hgrs(6).Cells(bj(1).njxh * 2 + 3, 3) = bj(9).xkrs + bj(10).xkrs + bj(14).xkrs '数学.Cells(bj(1).njxh * 2 + 3, 4) = bj(9).xkzf + bj(10).xkzf + bj(14).xkzf.Cells(bj(1).njxh * 2 + 3, 5) = Round(.Cells(bj(1).njxh * 2 + 3, 4) / .Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6) = bj(9).xkjgr + bj(10).xkjgr + bj(14).xkjgr.Cells(bj(1).njxh * 2 + 3, 7) = bj(9).xkyxr + bj(10).xkyxr + bj(14).xkyxr.Cells(bj(1).njxh * 2 + 3, 8) = hgrs(1) + hgrs(2) + hgrs(6)End WithWith Sheets("普小") '过录普小成绩.Cells(bj(1).njxh * 2 + 2, 3) = bj(3).xkrs + bj(4).xkrs + bj(5).xkrs + bj(7).xkrs + bj(8).xkrs '语文.Cells(bj(1).njxh * 2 + 2, 4) = bj(3).xkzf + bj(4).xkzf + bj(5).xkzf + bj(7).xkzf + bj(8).xkzf.Cells(bj(1).njxh * 2 + 2, 5) = Round(.Cells(bj(1).njxh * 2 + 2, 4) / .Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6) = bj(3).xkjgr + bj(4).xkjgr + bj(5).xkjgr + bj(7).xkjgr + bj(8).xkjgr.Cells(bj(1).njxh * 2 + 2, 7) = bj(3).xkyxr + bj(4).xkyxr + bj(5).xkyxr + bj(7).xkyxr + bj(8).xkyxr.Cells(bj(1).njxh * 2 + 2, 8) = hgrs(3) + hgrs(4) + hgrs(5) + hgrs(7) + hgrs(8).Cells(bj(1).njxh * 2 + 3, 3) = bj(11).xkrs + bj(12).xkrs + bj(13).xkrs + bj(15).xkrs + bj(16).xkrs '数学.Cells(bj(1).njxh * 2 + 3, 4) = bj(11).xkzf + bj(12).xkzf + bj(13).xkzf + bj(15).xkzf + bj(16).xkzf.Cells(bj(1).njxh * 2 + 3, 5) = Round(.Cells(bj(1).njxh * 2 + 3, 4) / .Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6) = bj(11).xkjgr + bj(12).xkjgr + bj(13).xkjgr + bj(15).xkjgr + bj(15).xkjgr.Cells(bj(1).njxh * 2 + 3, 7) = bj(11).xkyxr + bj(12).xkyxr + bj(13).xkyxr + bj(15).xkyxr + bj(16).xkyxr.Cells(bj(1).njxh * 2 + 3, 8) = hgrs(3) + hgrs(4) + hgrs(5) + hgrs(7) + hgrs(8)End WithUnload excel操作End Sub计算成绩:二年级略。
用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。