您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Excel 常用宏编程的代码学习
Excel常用宏编程的代码学习用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句Dimaasinteger'声明a为整型变量Dima'声明a为变体变量Dimaasstring'声明a为字符串变量Dimaascurrency,bascurrency,cascurrency'声明a,b,c为货币变量......声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String*length(定长字符串)、Object、Variant、用户定义类型或对象类型。强制声明变量OptionExplicit说明:该语句必在任何过程之前出现在模块中。声明常数用来代替文字值。Const'常数的默认状态是Private。ConstMy=456'声明Public常数。PublicConstMyString=HELP'声明PrivateInteger常数。PrivateConstMyIntAsInteger=5'在同一行里声明多个常数。ConstMyStr=Hello,MyDoubleAsDouble=3.4567选择当前单元格所在区域在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。SubMy_SelectSelection.CurrentRegion.SelectEndsub返回当前单元格中数据删除前后空格后的值submy_trimmsgboxTrim(ActiveCell.Value)endsub单元格位移submy_offsetActiveCell.Offset(0,1).Select'当前单元格向左移动一格ActiveCell.Offset(0,-1).Select'当前单元格向右移动一格ActiveCell.Offset(1,0).Select'当前单元格向下移动一格ActiveCell.Offset(-1,0).Select'当前单元格向上移动一格endsub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往submy_offset之下加一段代码onerrorresumenext注意以下代码都不再添加sub“代码名称”和endsub请自己添加!给当前单元格赋值ActiveCell.Value=你好!!!给指定单元格赋值例如:A1单元格内容设为HELLORange(a1).value=hello又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入HELLO1.sheets(sheet2).selectrange(a1).value=hello或2.Sheets(sheet1).Range(a1).Value=hello说明:1.sheet2被选中,然后在将“HELLO赋到A1单元格中。2.sheet2不必被选中,即可“HELLO赋到sheet2的A1单元格中。隐藏工作表'隐藏SHEET1这张工作表sheets(sheet1).Visible=False'显示SHEET1这张工作表sheets(sheet1).Visible=True打印预览有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。DimmyAsWorksheetForEachmyInWorksheetsmy.PrintPreviewNextmy得到当前单元格的地址msgboxActiveCell.Address得到当前日期及时间msgboxdate&chr(13)&time保护工作簿ActiveSheet.Protect取消保护工作簿ActiveSheet.Unprotect给活动工作表改名为liuActiveSheet.Name=liu打开一个应用程序AppActivate(Shell(C:\WINDOWS\CALC.EXE))增加一个工作表Worksheets.Add删除活动工作表activesheet.delete打开一个工作簿文件Workbooks.OpenFileName:=C:\MyDocuments\Book2.xls关闭活动窗口ActiveWindow.Close单元格格式选定单元格左对齐Selection.HorizontalAlignment=xlLeft选定单元格居中Selection.HorizontalAlignment=xlCenter选定单元格右对齐Selection.HorizontalAlignment=xlRight选定单元格为百分号风格Selection.Style=Percent选定单元格字体为粗体Selection.Font.Bold=True选定单元格字体为斜体Selection.Font.Italic=True选定单元格字体为宋体20号字WithSelection.Font.Name=宋体.Size=20EndWithWith语句With对象.描述EndWith清除单元格ActiveCell.Clear'删除所有文字、批注、格式返回选定区域的行数MsgBoxSelection.Rows.Count返回选定区域的列数MsgBoxSelection.Columns.Count返回选定区域的地址Selection.Address忽略所有的错误ONERRORRESUMENEXT遇错跳转onerrorgotoerr_handle'中间的其他代码err_handle:'标签'跳转后的代码删除一个文件killc:\1.txt定制自己的状态栏Application.StatusBar=现在时刻:&Time恢复自己的状态栏Application.StatusBar=false用代码执行一个宏Application.Runmacro:=text滚动窗口到a1的位置ActiveWindow.ScrollRow=1ActiveWindow.ScrollColumn=1定制系统日期DimMyDate,MyDayMyDate=#12/12/69#MyDay=Day(MyDate)返回当天的时间DimMyDate,MyYearMyDate=DateMyYear=Year(MyDate)MsgBoxMyYearinputbox输入框XX=InputBox(Enternumberofmonthstoadd)得到一个文件名DimkkAsStringkk=Application.GetOpenFilename(EXCEL(*.XLS),*.XLS,Title:=提示:请打开一个EXCEL文件:)msgboxkk打开zoom对话框Application.Dialogs(xlDialogZoom).Show激活字体对话框Application.Dialogs(xlDialogActiveCellFont).Show打开另存对话框DimkkAsStringkk=Application.GetSaveAsFilename(excel(*.xls),*.xls)Workbooks.OpenkkVBA常用语言定制模块行为(1)OptionExplicit'强制对模块内所有变量进行声明OptionPrivateModule'标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示OptionCompareText'字符串不区分大小写OptionBase1'指定数组的第一个下标为1(2)OnErrorResumeNext'忽略错误继续执行VBA代码,避免出现错误消息(3)OnErrorGoToErrorHandler'当错误发生时跳转到过程中的某个位置(4)OnErrorGoTo0'恢复正常的错误提示(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)ActiveWorkbook.name'返回活动工作薄的名称(14)ThisWorkbook.Name‘返回当前工作簿名称ThisWorkbook.FullName‘返回当前工作簿路径和名称(15)ActiveWindow.EnableResize=False‘禁止调整活动工作簿的大小(16)Application.Window.ArrangexlArrangeStyleTiled‘将工作簿以平铺方式排列(17)ActiveWorkbook.WindowState=xlMaximized‘将当前工作簿最大化工作表(18)ActiveSheet.UsedRange.Rows.Count‘当前工作表中已使用的行数(19)Rows.Count‘获取工作表的行数(注:考虑向前兼容性)(20)Sheets(Sheet1).Name=“Sum”'将Sheet1命名为Sum(21)ThisWorkbook.Sheets.AddBefore:=Worksheets(1)'添加一个新工作表在第一工作表前(22)ActiveSheet.MoveAfter:=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=NotActiveWindow.DisplayGridlines'切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27)ActiveWindow.DisplayHeadings=NotActiveWindow.DisplayHeadings‘切换工作表中的行列边框显示(28)ActiveSheet.UsedRange.FormatConditions.Delete‘删除当前工作表中所有的条件格式(29)Cells.Hyperlinks.Delete‘取消当前工作表所有超链接(30)ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2'将页面设置更改为横向(31)ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=Application.UserName‘将用户名放置在活动工作表的页脚单元格/单元格区域(32)ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Selec
本文标题:Excel 常用宏编程的代码学习
链接地址:https://www.777doc.com/doc-4434954 .html