VBA编程中的常用代码_第1页
VBA编程中的常用代码_第2页
VBA编程中的常用代码_第3页
VBA编程中的常用代码_第4页
VBA编程中的常用代码_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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(定长字符串)、Ob

2、ject、Variant、用户定义类型或对象类型。强制声明变量Option Explicit说明:该语句必在任何过程之前出现在模块中。-声明常数,用来代替文字值。Const ' 常数的默认状态是 Private。Const My = 456' 声明 Public 常数。Public Const MyString = "HELP"' 声明 Private Integer 常数。Private Const MyInt As Integer = 5' 在同一行里声明多个常数。Const MyStr = "Hello", MyDo

3、uble As Double = 3.4567 -在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。Sub My_SelectSelection.CurrentRegion.SelectEnd sub-删除当前单元格中数据的前后空格。sub my_trimTrim(ActiveCell.Value)end sub-使单元格位移sub my_offsetActiveCell.Offset(0, 1).Select'当前单元格向左移动一格ActiveCell.Offset(0,

4、 -1).Select'当前单元格向右移动一格ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格end sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset 之下加一段代码 on error resume next-注意以下代码都不再添加 sub “代码名称” 和end sub请自己添加!给当前单元格赋值:ActiveCell.Value = "你好!"给特定单元格加入一段代码

5、:例如:在单元格中插入""Range("a1").value="hello"又如:你现在的工作簿在sheet1上,你要往sheet2的单元格中插入""1.sheets("sheet2").selectrange("a1").value="hello"或2.Sheets("sheet1").Range("a1").Value = "hello"说明:1.sheet2被打开,然后在将“HELLO&qu

6、ot;放入到A1单元格中。2.sheet2不被打开,将“HELLO"放入到A1单元格中。-隐藏工作表'隐藏SHEET1这张工作表sheets("sheet1").Visible=False'显示SHEET1这张工作表sheets("sheet1").Visible=True-有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。Dim my As WorksheetFor Each my In Worksheetsmy.PrintPreviewNext

7、 my-得到当前单元格的地址msgbox ActiveCell.Address-得到当前日期及时间msgbox date & chr(13) & time-保护工作簿ActiveSheet.Protect 取消保护工作簿ActiveSheet.Unprotect-给当前工作簿改名为 "liu"ActiveSheet.Name = "liu"-打开一个应用程序AppActivate (Shell("C:WINDOWSCALC.EXE")-增加一个工作簿Worksheets.Add删除当前工作簿activesheet.de

8、lete-打开一个文件Workbooks.Open FileName:="C:My DocumentsBook2.xls"关闭当前工作簿ActiveWindow.Close-当前单元格定为:左对齐Selection.HorizontalAlignment = xlLeft当前单元格定为:中心对齐Selection.HorizontalAlignment = xlCenter当前单元格定为:右对齐Selection.HorizontalAlignment = xlRight-当前单元格为百分号风格Selection.Style = "Percent"-当前

9、单元格字体为粗体Selection.Font.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.Colu

10、mns.Count-测试选择状态的单元格的地址Selection.Address-让所有的错误不再发生ON ERROR RESUME NEXT-产生错误时让错误转到另一个地方on error goto l'codel:'code-删除一个文件kill "c:1.txt"-定制自己的状态栏Application.StatusBar = "现在时刻: " & Time恢复自己的状态栏Application.StatusBar = false-在运行期执行一个宏Application.Run macro:="text"

11、;-滚动窗口到a1的位置ActiveWindow.ScrollRow = 1ActiveWindow.ScrollColumn = 1-定制系统日期Dim MyDate, MyDayMyDate = #12/12/69#MyDay = Day(MyDate)-今天的年限Dim MyDate, MyYearMyDate = Date MyYear = Year(MyDate)MsgBox MyYear -产生一个inputbox<输入框>InputBox ("Enter number of months to add")-得到一个文件名:Dim kk As Str

12、ingkk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS", Title:="提示:请打开一个EXCEL文件:")msgbox kk-打开zoom对话框Application.Dialogs(xlDialogZoom).Show-激活字体对话框Application.Dialogs(xlDialogActiveCellFont).Show-打开另存对话框Dim kk As Stringkk = Application.GetSaveAsFilename("excel (*.xls), *

13、.xls")Workbooks.Open kk-此段代码寻找字符串中特定字符的位置,需要建立一个窗体,并在窗体中,放入TEXTBOX1,TEXTBOX2和TEXTBOX3(3个文本框)及COMMANDBUTTON1(按钮),如下图所示:Private Sub CommandButton1_Click()a = TextBox1.Textb = TextBox2.Textaa = Len(a)i = 1Dim YY As StringIf b = "" Then Exit SubDoIf InStr(i, a, b, vbTextCompare) = 0 Then

14、Exit Dokk = InStr(i, a, b, vbTextCompare)YY = YY & CStr(kk) & "/"i = kk + 1Loop While aa >= iTextBox3.Text = YYEnd Sub* * 定制模块行为 * * Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 Option Base 1 &#

15、39;指定数组的第一个下标为 1 On Error Resume Next '忽略错误继续执行 VBA代码,避免出现错误消息 On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置 On Error GoTo 0 '恢复正常的错误提示 Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示 Application.ScreenUpdating=False '关闭屏幕刷新 Application.ScreenUpdating=True '打开屏幕刷新 Applica

16、tion.Enable.CancelKey=xlDisabled '禁用 Ctrl+Break 中止宏运行的功能 Err.Clear '清除程序运行过程中所有的错误 * * 工作簿 * * Workbooks.Add() '创建一个新的工作簿 Workbooks("book1.xls").Activate '激活名为 book1的工作簿 ThisWorkbook.Save '保存工作簿 ThisWorkbook.close '关闭当前工作簿 ActiveWorkbook.Sheets.Count '获取活动工作薄中工作

17、表数 ActiveW '返回活动工作薄的名称 ThisWorkbook.Name '返回当前工作簿名称 ThisWorkbook.FullName '返回当前工作簿路径和名称 ActiveWindow.EnableResize=False '禁止调整活动工作簿的大小 Application.Window.Arrange xlArrangeStyleTiled '将工作簿以平铺方式排列 ActiveWorkbook.WindowState=xlMaximized '将当前工作簿最大化 ThisWorkbook.Builtin

18、DocumentProperties(""Last Save Time") 或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(""Last Save Time") '返回上次保存工作簿的日期和时间 ThisWorkbook.BuiltinDocumentProperties("Last Print Date") 或 Application.Caller.Parent.Parent.BuiltinDocumentProperties(&q

19、uot;"Last Print Date") '返回上次打印或预览工作簿的日期和时间 Workbooks.Close '关闭所有打开的工作簿 ActiveWorkbook.LinkSources(xlExcelLinks)'返回当前工作簿中的第一条链接 ActiveWorkbook.CodeName ThisWorkbook.CodeName '返回工作簿代码的名称 ActiveWorkbook.FileFormat ThisWorkbook.FileFormat '返回当前工作簿文件格式代码 ThisWorkbook.Path Ac

20、tiveWorkbook.Path '返回当前工作簿的路径(注:若工作簿未保存,则为空) ThisWorkbook.ReadOnly ActiveWorkbook.ReadOnly '返回当前工作簿的读/写值(为 False) ThisWorkbook.Saved ActiveWorkbook.Saved '返回工作簿的存储值(若已保存则为 False) Application.Visible = False '隐藏工作簿 Application.Visible = True '显示工作簿 注:可与用户窗体配合使用,即在打开工作簿时将工作簿隐藏,只显示用

21、户窗体.可设置控制按钮控制工作簿可见 * * 工作表 * * ActiveSheet.UsedRange.Rows.Count '当前工作表中已使用的行数 Rows.Count '获取工作表的行数(注:考虑向前兼容性) Sheets(Sheet1).Name= "Sum" '将 Sheet1命名为 Sum ThisWorkbook.Sheets.Add Before:=Worksheets'添加一个新工作表在第一工作表前 ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbo

22、ok.Sheets.Count) '将当前工作表移至工作表的最后 Worksheets(Array("sheet1","sheet2").Select '同时选择工作表 1和工作表 2 Sheets("sheet1").Delete或 Sheets(1).Delete '删除工作表 1 ActiveWorkbook.Sheets(i).Name '获取工作表 i的名称 ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '

23、;切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings '切换工作表中的行列边框显示 ActiveSheet.UsedRange.FormatConditions.Delete '删除当前工作表中所有的条件格式 Cells.Hyperlinks.Delete '取消当前工作表所有超链接 ActiveSheet.PageSetup.Orientation=xlLandscape 或 ActiveSheet.PageSet

24、up.Orientation=2 '将页面设置更改为横向 ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName '在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.LeftFooter=Application.UserName '将用户名放置在活动工作表的页脚 ActiveSheet.Columns("B").Insert '在A 列右侧插入列,即插入 B 列 ActiveSheet.Columns("E").Cut ActiveShe

25、et.Columns("B").Insert '以上两句将 E 列数据移至 B 列,原 B 列及以后的数据相应后移 ActiveSheet.Columns("B").Cut ActiveSheet.Columns("E").Insert '以上两句将 B列数据移至 D列,原 C列和 D列数据相应左移一列 ActiveSheet.Calculate '计算当前工作表 ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetHidden &#

26、39;正常隐藏工作表,同在 Excel 菜单中选择""格式工作表隐藏"操作一样 ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetVeryHidden '隐藏工作表,不能通过在 Excel 菜单中选择""格式工作表取消隐藏"来重新显示工作表 ThisWorkbook.Worksheets(""sheet1").Visible=xlSheetVisible '显示被隐藏的工作表 ThisWorkbook.Shee

27、ts(1).ProtectContents '检查工作表是否受到保护 ThisWorkbook.Worksheets.Add Count:=2, Before:=ThisWorkbook.Worksheets(2) 或 ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2 '在第二个工作表之前添加两个新的工作表 ThisWorkbook.Worksheets(3).Copy '复制一个工作表到新的工作簿 ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Workshe

28、ets'复制第三个工作表到第二个工作表之前 ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20 '改变工作表的列宽为 20 ThisWorkbook.ActiveSheet.Columns.ColumnWidth = ThisWorkbook.ActiveSheet.StandardWidth '将工作表的列宽恢复为标准值 ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20 '改变工作表列 1的宽度为 20 ThisWorkbook.ActiveSheet.Ro

29、ws.RowHeight = 10 '改变工作表的行高为 10 ThisWorkbook.ActiveSheet.Rows.RowHeight = ThisWorkbook.ActiveSheet.StandardHeight '将工作表的行高恢复为标准值 ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 '改变工作表的行 1的高度值设置为 10 ThisWorkbook.Worksheets(1).Activate '当前工作簿中的第一个工作表被激活 ThisWorkbook.Worksheets("Sh

30、eet1").Rows(1).Font.Bold = True '设置工作表Sheet1中的行1数据为粗体 ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True '将工作表Sheet1中的行1隐藏 ActiveCell.EntireRow.Hidden = True '将当前工作表中活动单元格所在的行隐藏 注:同样可用于列。 ActiveSheet.Range(""A:A").EntireColumn.AutoFit '自动调整当前工作表 A 列

31、列宽 ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) '选中当前工作表中常量和文本单元格 ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) '选中当前工作表中常量和文本及错误值单元格* * 单元格/单元格区域 * * ActiveCell.CurrentRegion.Select 或 Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown).Select &#

32、39;选择当前活动单元格所包含的范围,上下左右无空行 Cells.Select '选定当前工作表的所有单元格 Range("A1").ClearContents '清除活动工作表上单元格 A1中的内容 Selection.ClearContents '清除选定区域内容 Range("A1:D4").Clear '彻底清除 A1至 D4 单元格区域的内容,包括格式 Cells.Clear '清除工作表中所有单元格的内容 ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可

33、下移一列 Range("A1").Offset(ColumnOffset:=1)或 Range("A1").Offset'偏移一列 Range("A1").Offset(Rowoffset:=-1)或 Range("A1").Offset'向上偏移一行 Range("A1").Copy Range("B1") '复制单元格 A1,粘贴到单元格 B1中 Range("A1:D8").Copy Range("F1")

34、 '将单元格区域复制到单元格 F1开始的区域中 Range("A1:D8").Cut Range("F1") '剪切单元格区域 A1至 D8,复制到单元格 F1开始的区域中 Range("A1").CurrentRegion.Copy Sheets("Sheet2").Range("A1") '复制包含 A1 的单元格区域到工作表 2中以 A1起始的单元格区域中 注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列Active

35、Window.RangeSelection.Value=XX '将值 XX 输入到所选单元格区域中 ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数 Selection.Count '当前选中区域的单元格数 GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,"") '返回单元格中超级链接的地址并赋值 TextColor=Range("A1").Font.ColorIndex '检查单元格 A1的文本颜色并返回颜色索引 Range("A1").Interior.ColorIndex '获取单元格 A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论