1、VB控制EXCEL用VB操作excel方法汇总Private Sub Command3_Click() 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(objExl.Sheets.Count).Nam
2、e = 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 选中工作薄 For i = 1 To 50 循环写入数据 For j = 1 To 5 If
3、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.ActiveWin
4、dow.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:M
5、M: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.WindowSta
6、te = 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.Applicati
7、on1) 显示当前窗口:ExcelID.Visible := True;2) 更改 Excel 标题栏:ExcelID.Caption := 应用程序调用 Microsoft Excel;3) 添加新工作簿:ExcelID.WorkBooks.Add;4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( C:ExcelDemo.xls );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets2.Activate;或 ExcelID.WorkSheets Sheet2 .Activate;6) 给单元格赋值:ExcelID.Cells1,4.Value :
8、= 第一行第四列;7) 设置指定列的宽度(单位:字符个数),以第一列为例: ExcelID.ActiveSheet.Columns1.ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅0.035厘米),以第二行为例: ExcelID.ActiveSheet.Rows2.RowHeight := 1/0.035; / 1厘米9) 在第8行之前插入分页符: ExcelID.WorkSheets1.Rows8.PageBreak := 1;10) 在第8列之前删除分页符: ExcelID.ActiveSheet.Columns4.PageBreak := 0;11) 指定边
9、框线宽度: ExcelID.ActiveSheet.Range B3:D4 .Borders2.Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells1,4.ClearContents;13) 设置第一行字体属性:ExcelID.ActiveSheet.Rows1.Font.Name := 隶书;ExcelID.ActiveSheet.Rows1.Font.Color:= clBlue;ExcelID.ActiveSheet.Rows1.Font.Bold := True;E
10、xcelID.ActiveSheet.Rows1.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
11、.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.CenterHori
12、zontally := 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 .Paste
13、Special;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列: a. ExcelID.ActiveSheet.Rows2.Insert; b. ExcelID.ActiveSheet.Columns1.Insert;17) 删除一行或一列: a. ExcelID.ActiveSheet.Rows2.Delete; b. ExcelID.ActiveSheet.Columns1.Delete;18) 打印预览工作表: ExcelID.ActiveSheet.PrintPreview;19) 打印输出工作表: Exce
14、lID.ActiveSheet.PrintOut;20) 工作表保存: If not ExcelID.ActiveWorkBook.Saved then ExcelID.ActiveSheet.PrintPreview End if21) 工作表另存为: ExcelID.ActiveWorkbook.SaveAs FileName:=C:ExcelDemo1.xls22) 放弃存盘: ExcelID.ActiveWorkBook.Saved := True;23) 关闭工作簿: ExcelID.WorkBooks.Close;24) 退出 Excel:ExcelID.Quit;25) 设置工作
15、表密码:ExcelID.ActiveSheet.Protect 123, DrawingObjects:=True, Contents:=True, Scenarios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized 27) 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) 关闭时是否提示保存(true 保存;false 不保存)ExcelID.
16、DisplayAlerts = False30) 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True31) 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = $1:$132) 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = 33) 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPrevie
17、w34) 设置显示比例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 当错误发生时跳转到过程中的某个位置(
18、4) On Error GoTo 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 激活名为b
19、ook1的工作簿(10) ThisWorkbook.Save 保存工作簿(11) ThisWorkbook.close 关闭当前工作簿(12) ActiveWorkbook.Sheets.Count 获取活动工作薄中工作表数(13) ActiveWorkbook.name 返回活动工作薄的名称(14) ThisWorkbook.Name 返回当前工作簿名称ThisWorkbook.FullName 返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False 禁止调整活动工作簿的大小(16) Application.Window.Arrange xlArra
20、ngeStyleTiled 将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized 将当前工作簿最大化工作表(18) ActiveSheet.UsedRange.Rows.Count 当前工作表中已使用的行数(19) Rows.Count 获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum” 将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) 添加一个新工作表在第一工作表前(22) ActiveSheet.Move A
21、fter:=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
22、切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings 切换工作表中的行列边框显示(28) ActiveSheet.UsedRange.FormatConditions.Delete 删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete 取消当前工作表所有超链接(30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetu
23、p.Orientation=2 将页面设置更改为横向(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName 在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=Application.UserName 将用户名放置在活动工作表的页脚单元格/单元格区域(32) ActiveCell.CurrentRegion.Select 或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown).Select 选择当前活动单元格所包含的范围,上下左右无空行
24、(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
25、) 偏移一列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的单元格
26、区域到工作表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)
27、 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
28、”).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) Activ
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2