1、VBA编程中的常用代码Excel与VBA编程中的常用代码 用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句Dim a as integer 声明A为整形变量Dim a 声明A为变体变量Dim a as string 声明A为字符串变量Dim a,b,c as currency 声明A,b,c为货币变量.声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String * length(定长字符串)、Object、Vari
2、ant、用户定义类型或对象类型。强制声明变量Option Explicit说明:该语句必在任何过程之前出现在模块中。-声明常数,用来代替文字值。Const 常数的默认状态是 Private。Const My = 456 声明 Public 常数。Public Const MyString = HELP 声明 Private Integer 常数。Private Const MyInt As Integer = 5 在同一行里声明多个常数。Const MyStr = Hello, MyDouble As Double = 3.4567 -在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在
3、一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。Sub My_SelectSelection.CurrentRegion.SelectEnd sub-删除当前单元格中数据的前后空格。sub my_trimTrim(ActiveCell.Value)end sub-使单元格位移sub my_offsetActiveCell.Offset(0, 1).Select当前单元格向左移动一格ActiveCell.Offset(0, -1).Select当前单元格向右移动一格ActiveCell.Offset(1 , 0).Select当前单元格向
4、下移动一格ActiveCell.Offset(-1 , 0).Select当前单元格向上移动一格end sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset 之下加一段代码 on error resume next-注意以下代码都不再添加 sub “代码名称” 和end sub请自己添加!给当前单元格赋值:ActiveCell.Value = 你好!给特定单元格加入一段代码:例如:在单元格中插入Range(a1).value=hello又如:你现在的工作簿在sheet1上,你要往sheet2的单元格中插入1.sheets(sheet2).se
5、lectrange(a1).value=hello或2.Sheets(sheet1).Range(a1).Value = hello说明:1.sheet2被打开,然后在将“HELLO放入到A1单元格中。2.sheet2不被打开,将“HELLO放入到A1单元格中。-隐藏工作表隐藏SHEET1这张工作表sheets(sheet1).Visible=False显示SHEET1这张工作表sheets(sheet1).Visible=True-有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。Dim my As Works
6、heetFor Each my In Worksheetsmy.PrintPreviewNext my-得到当前单元格的地址msgbox ActiveCell.Address-得到当前日期及时间msgbox date & chr(13) & time-保护工作簿ActiveSheet.Protect 取消保护工作簿ActiveSheet.Unprotect-给当前工作簿改名为 liuActiveSheet.Name = liu-打开一个应用程序AppActivate (Shell(C:WINDOWSCALC.EXE)-增加一个工作簿Worksheets.Add删除当前工作簿activeshee
7、t.delete-打开一个文件Workbooks.Open FileName:=C:My DocumentsBook2.xls关闭当前工作簿ActiveWindow.Close-当前单元格定为:左对齐Selection.HorizontalAlignment = xlLeft当前单元格定为:中心对齐Selection.HorizontalAlignment = xlCenter当前单元格定为:右对齐Selection.HorizontalAlignment = xlRight-当前单元格为百分号风格Selection.Style = Percent-当前单元格字体为粗体Selection.Fo
8、nt.Bold = True当前单元格字体为斜体Selection.Font.Italic = True当前单元格字体为宋体20号字With Selection.Font.Name = 宋体.Size = 20End With-With 语句With 对象.描述End With-让你的机器发出响声BEEP-清除单元格中所有文字、批注、格式、所有的东西!ActiveCell.Clear-测试选择状态的单元格的行数MsgBox Selection.Rows.Count测试选择状态的单元格的列数MsgBox Selection.Columns.Count-测试选择状态的单元格的地址Selection
9、.Address-让所有的错误不再发生ON ERROR RESUME NEXT-产生错误时让错误转到另一个地方on error goto lcodel:code-删除一个文件kill c:1.txt-定制自己的状态栏Application.StatusBar = 现在时刻: & Time恢复自己的状态栏Application.StatusBar = false-在运行期执行一个宏Application.Run macro:=text-滚动窗口到a1的位置ActiveWindow.ScrollRow = 1ActiveWindow.ScrollColumn = 1-定制系统日期Dim MyDat
10、e, MyDayMyDate = #12/12/69#MyDay = Day(MyDate)-今天的年限Dim MyDate, MyYearMyDate = Date MyYear = Year(MyDate)MsgBox MyYear -产生一个inputboxInputBox (Enter number of months to add)-得到一个文件名:Dim kk As Stringkk = Application.GetOpenFilename(EXCEL (*.XLS), *.XLS, Title:=提示:请打开一个EXCEL文件:)msgbox kk-打开zoom对话框Appli
11、cation.Dialogs(xlDialogZoom).Show-激活字体对话框Application.Dialogs(xlDialogActiveCellFont).Show-打开另存对话框Dim kk As Stringkk = Application.GetSaveAsFilename(excel (*.xls), *.xls)Workbooks.Open kk-此段代码寻找字符串中特定字符的位置,需要建立一个窗体,并在窗体中,放入TEXTBOX1,TEXTBOX2和TEXTBOX3(3个文本框)及COMMANDBUTTON1(按钮),如下图所示:Private Sub Command
12、Button1_Click()a = TextBox1.Textb = TextBox2.Textaa = Len(a)i = 1Dim YY As StringIf b = Then Exit SubDoIf InStr(i, a, b, vbTextCompare) = 0 Then Exit Dokk = InStr(i, a, b, vbTextCompare)YY = YY & CStr(kk) & /i = kk + 1Loop While aa = iTextBox3.Text = YYEnd Sub* * 定制模块行为 * * Option Explicit 强制对模块内所有变
13、量进行声明 Option Private Module 标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text 字符串不区分大小写 Option Base 1 指定数组的第一个下标为 1 On Error Resume Next 忽略错误继续执行 VBA代码,避免出现错误消息 On Error GoTo ErrorHandler 当错误发生时跳转到过程中的某个位置 On Error GoTo 0 恢复正常的错误提示 Application.DisplayAlerts=False 在程序执行过程中使出现的警告框不显示 Application.Scr
14、eenUpdating=False 关闭屏幕刷新 Application.ScreenUpdating=True 打开屏幕刷新 Application.Enable.CancelKey=xlDisabled 禁用 Ctrl+Break 中止宏运行的功能 Err.Clear 清除程序运行过程中所有的错误 * * 工作簿 * * Workbooks.Add() 创建一个新的工作簿 Workbooks(book1.xls).Activate 激活名为 book1的工作簿 ThisWorkbook.Save 保存工作簿 ThisWorkbook.close 关闭当前工作簿 ActiveWorkbook
15、.Sheets.Count 获取活动工作薄中工作表数 ActiveWorkbook.name 返回活动工作薄的名称 ThisWorkbook.Name 返回当前工作簿名称 ThisWorkbook.FullName 返回当前工作簿路径和名称 ActiveWindow.EnableResize=False 禁止调整活动工作簿的大小 Application.Window.Arrange xlArrangeStyleTiled 将工作簿以平铺方式排列 ActiveWorkbook.WindowState=xlMaximized 将当前工作簿最大化 ThisWorkbook.BuiltinDocume
16、ntProperties(Last Save Time) 或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(Last Save Time) 返回上次保存工作簿的日期和时间 ThisWorkbook.BuiltinDocumentProperties(Last Print Date) 或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(Last Print Date) 返回上次打印或预览工作簿的日期和时间 Workbooks.Close 关闭所有打开的工作
17、簿 ActiveWorkbook.LinkSources(xlExcelLinks)返回当前工作簿中的第一条链接 ActiveWorkbook.CodeName ThisWorkbook.CodeName 返回工作簿代码的名称 ActiveWorkbook. ThisWorkbook. 返回当前工作簿文件格式代码 ThisWorkbook.Path ActiveWorkbook.Path 返回当前工作簿的路径(注:若工作簿未保存,则为空) ThisWorkbook.ReadOnly ActiveWorkbook.ReadOnly 返回当前工作簿的读/写值(为 False) ThisWorkbo
18、ok.Saved ActiveWorkbook.Saved 返回工作簿的存储值(若已保存则为 False) Application.Visible = False 隐藏工作簿 Application.Visible = True 显示工作簿 注:可与用户窗体配合使用,即在打开工作簿时将工作簿隐藏,只显示用户窗体.可设置控制按钮控制工作簿可见 * * 工作表 * * ActiveSheet.UsedRange.Rows.Count 当前工作表中已使用的行数 Rows.Count 获取工作表的行数(注:考虑向前兼容性) Sheets(Sheet1).Name= Sum 将 Sheet1命名为 Su
19、m ThisWorkbook.Sheets.Add Before:=Worksheets添加一个新工作表在第一工作表前 ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) 将当前工作表移至工作表的最后 Worksheets(Array(sheet1,sheet2).Select 同时选择工作表 1和工作表 2 Sheets(sheet1).Delete或 Sheets(1).Delete 删除工作表 1 ActiveWorkbook.Sheets(i).Name 获取工作表 i的名称 Act
20、iveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines 切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings 切换工作表中的行列边框显示 ActiveSheet.UsedRange.FormatConditions.Delete 删除当前工作表中所有的条件格式 Cells.Hyperlinks.Delete 取消当前工作表所有超链接 ActiveSheet.PageSetup.
21、Orientation=xlLandscape 或 ActiveSheet.PageSetup.Orientation=2 将页面设置更改为横向 ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName 在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.LeftFooter=Application.UserName 将用户名放置在活动工作表的页脚 ActiveSheet.Columns(B).Insert 在A 列右侧插入列,即插入 B 列 ActiveSheet.Columns(E).Cut ActiveSheet.Columns(B).Insert 以上两句将
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1