以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [分享]VB中对EXCEL的各种操作 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39540) |
-- 作者:nblwar -- 发布时间:2013/8/26 17:25:00 -- [分享]VB中对EXCEL的各种操作 网络上搜索的, 全面控制 Excel 首先创建 Excel 对象,使用ComObj Dim ExcelID As Excel.Application Set ExcelID As new Excel.Application 1) 显示当前窗口 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].Font.Name = "隶书" 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.拷贝整个工作表 ExcelID.ActiveSheet.Used.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 Then ExcelID.ActiveSheet.PrintPreview End If 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, Contents:=True, Scenarios:=True 26) EXCEL的显示方式为最大化 ExcelID.Application.WindowState = xlMaximized 27) 工作薄显示方式为最大化 ExcelID.ActiveWindow.WindowState = xlMaximized 28) 设置打开默认工作薄数量 ExcelID.SheetsInNewWorkbook = 3 29) 关闭时是否提示保存(True 保存,False 不保存) ExcelID.DisplayAlerts = False 30) 设置拆分窗口,及固定行位置 ExcelID.ActiveWindow.SplitRow = 1 ExcelID.ActiveWindow.FreezePanes = True 31) 设置打印时固定打印内容 ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" 32) 设置打印标题 ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = "" 33) 设置显示方式(分页方式显示) ExcelID.ActiveWindow.View = xlPageBreakPreview 34) 设置显示比例 ExcelID.ActiveWindow.Zoom = 100 35) 让Excel 响应 DDE 请求 Ex.Application.IgnoreRemoteRequests = False ------------------------------------------------------------------------------------------------------------- 用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.Workbooks.Add \'增加一个工作薄 objExl.Sheets(1).Name = "book2" \'修改工作薄名称 objExl.Sheets("book2").Select \'选中工作薄<book2> For i = 1 To 50 \'循环写入数据 For j = 1 To 5 If i = 1 Then objExl.Selection.NumberFormatLocal = "@" \'设置格式为文本 objExl.Cells(i, j) = " E " & i & j Else objExl.Cells(i, j) = i & j End If Next Next objExl.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:=True objExl.Application.IgnoreRemoteRequests = False objExl.Visible = True \'使EXCEL可见 objExl.Application.WindowState = xlMaximized \'EXCEL的显示方式为最大化 objExl.ActiveWindow.WindowState = xlMaximized \'工作薄显示方式为最大化 objExl.SheetsInNewWorkbook = 3 \'将默认新工作薄数量改回3个 Set objExl = Nothing \'清除对象 Me.MousePointer = 0 \'修改鼠标 Exit Sub err1: objExl.SheetsInNewWorkbook = 3 objExl.DisplayAlerts = False \'关闭时不提示保存 objExl.Quit \'关闭EXCEL objExl.DisplayAlerts = True \'关闭时提示保存 Set objExl = Nothing Me.MousePointer = 0 End Sub [此贴子已经被作者于2013-8-26 17:26:53编辑过]
|
-- 作者:lsy -- 发布时间:2013/8/26 17:58:00 -- 好,顶上。 |