word VBA 代码.doc

上传人:laozhun 文档编号:2389369 上传时间:2023-02-17 格式:DOC 页数:18 大小:112.50KB
返回 下载 相关 举报
word VBA 代码.doc_第1页
第1页 / 共18页
word VBA 代码.doc_第2页
第2页 / 共18页
word VBA 代码.doc_第3页
第3页 / 共18页
word VBA 代码.doc_第4页
第4页 / 共18页
word VBA 代码.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《word VBA 代码.doc》由会员分享,可在线阅读,更多相关《word VBA 代码.doc(18页珍藏版)》请在三一办公上搜索。

1、VBA_1基本入门代码集 by daode1212 2010-10-20Sub Msg_01()消息框:MsgBox 我们将成为VBA高手!End SubSub Msg_02()消息框,换行:MsgBox 我们将成为: & vbCrLf & VBA高手! & vbCr & VBS高手! & vbLf & ASP高手!End SubSub Msg_03()消息框,双引号:MsgBox 我们将成为VBA高手! & vbCr & Chr(34) & -专家级的高手! & Chr(34)End SubSub Msg_04()消息框,当前时间:MsgBox 新的长征起步于: & vbCr & NowMs

2、gBox 新的VBA高手诞生于: & vbCr & Year(Now) & vbCr & Month(Now) & vbCr & Day(Now)MsgBox 当前日期: & DateMsgBox 当前时间: & TimeMsgBox 当前时钟(秒): & TimerMsgBox 星期(星期日:1,星期一:2): & Weekday(Now)MsgBox DateDiff(d, Date, 1-10-2020) 距2010-01-10的天数=字母所表示的意义= yyyy 年 q 季度 n 月 y 一年的日数 d 日 w 一周的日数 ww 周 h 小时 m 分钟 s 秒=MsgBox DateA

3、dd(yyyy, 50, 01-10-1960) 加了50年的日子仅加上100个星期(700天):MsgBox Date + 7 * 100 再过100个星期是什么日子End SubSub Msg_05()消息框,数学计算:MsgBox 9*8+36/4-Sqr(81)= & vbCr & 9 * 8 + 36 / 4 - Sqr(81)MsgBox 27的立方根= & vbCr & 27 (1 / 3)作业:计算常用几何图形的周长棱长面积体积;End SubSub Msg_06()消息框,当前应用程序路径:MsgBox 当前应用程序路径: & vbCr & Application.PathE

4、nd SubSub Msg_07()消息框,当前文件路径:MsgBox 当前XLS路径: & vbCr & ThisWorkbook.PathEnd SubSub Msg_08()消息框,当前工作簿所有工作表:For Each x In ThisWorkbook.Sheets s = s & x.Name & NextMsgBox 当前工作簿所有工作表: & vbCr & sEnd SubSub Msg_09()消息框,添加五个工作表,显示当前工作簿所有工作表:Sheets.Add , , 5For Each x In ThisWorkbook.Sheets s = s & x.Name &

5、NextMsgBox 当前工作簿所有工作表与图表: & vbCr & sEnd SubSub Msg_10()消息框,求自然数1,2,3,.,2010之和For i = 1 To 2010s = s + iNextMsgBox 自然数1,2,3,.,2010之和是: & s作业:计算1-2010各自然数倒数之和;End SubSub 进制转换_11()10 - 16:MsgBox Hex(255)16 - 10:MsgBox &HFFEnd SubSub 子串在第几个位置_12()不能找到的:MsgBox InStr(12345, x) 输出:0找到的位置:MsgBox InStr(12345

6、, 5) 输出:5找到的位置:MsgBox InStr(12345, 12) 输出:1从右边向左边搜索,每一次查到的字符位置(位置从左向右计,从1开始)MsgBox InStrRev(1234512, 2) 输出:7End SubSub 左中右_13() mystr = 中国人民保险公司 MsgBox Left(mystr, 2) MsgBox Mid(mystr, 3, 4) MsgBox Right(mystr, 2)End SubSub 翻转字符串_14()mystr = 中国人民保险公司MsgBox StrReverse(mystr)End SubSub 替换_15() mystr =

7、 中国人民,保险公司 逗号换成换行: out = Replace(mystr, , vbCr) MsgBox outEnd SubSub Input01()输入框:s = InputBox(请输入你的大名, 姓名输入, daode1212)MsgBox s & -你一定会成为VBA高手的!End SubSub Input02()输入框:单元格写入内容:s = InputBox(请输入你的大名, 姓名输入, 项道德)Sheet1.Cells(1, 1) = sMsgBox Sheet1 中的 A1 单元格已经写入内容: & sEnd SubSub Input03()输入框:多个单元格写入内容:s

8、 = InputBox(要在A1:C10中写入什么?, 内容输入, 嫦娥二号)Sheet1.Range(A1:C10) = sMsgBox Sheet1 中的 A1:C10 单元格已经写入内容: & sEnd SubSub Input04()输入框:多个单元格写入内容:s = InputBox(在那一范围内写入内容?, 内容输入, A1:C10)Sheet1.Range(s) = RndMsgBox Sheet1 中的 & s & 单元格已经写入内容: & sEnd SubSub Input05()输入框:多个单元格写入内容:s = InputBox(在那一范围内写入内容?, 内容输入, A1

9、:C10)For Each x In Sheet1.Range(s) v = Int(Rnd * 10000) / 100 x.Value = vNextMsgBox Sheet1 中的 & s & 单元格已经写入内容1-100作业:在一定范围内生成随机整数:60-100作业:在一定范围内生成随机数(两位小数):0.00-9999.99作业:在一定范围内生成小图案(利用webdings,Wingdings字符)End SubSub Input06()输入框:拆解身份证号:s = InputBox(请输入身份证号码, 内容输入, 330523197811220018)y = Mid(s, 7,

10、4)m = Mid(s, 11, 2)d = Mid(s, 13, 2)Sheet1.Cells.ClearSheet1.Cells(1, 1) = 年Sheet1.Cells(1, 2) = 月Sheet1.Cells(1, 3) = 日Sheet1.Cells(2, 1) = ySheet1.Cells(2, 2) = mSheet1.Cells(2, 3) = dMsgBox 年-月-日 已经分解!作业:设计并拆解考生号;End SubSub Input07()字符串转变为数组:s = InputBox(请输入二个整数, 内容输入, 33,18)A = Split(s, ,)MsgBox

11、 A(0) + A(1) 等同于: a(0) & a(1)End SubSub Input08()字符串转变为数组:s = InputBox(请输入二个整数, 内容输入, 33,18)A = Split(s, ,)Sheet1.Range(B4:B5) = AMsgBox CInt(A(0) + CInt(A(1) 已经转为整数了B6 = CInt(A(0) + CInt(A(1)作业:输入十个整数,并求出它们的平均数.End SubSub Input09()生成模拟考生数据:s = InputBox(请输入学生数, 内容输入, 100)z = z & 残叶飘零冷雨飞z = z & 西风得意乱

12、云追z = z & 暮来漫漫梨花落z = z & 晨起茫茫玉宇堆z = z & 洗净铅华出本色z = z & 扫开烟霭露余晖z = z & 梅香不染枝方俏z = z & 雪重难压我自岿c = Len(z)Sheet1.Cells(1, 1) = 姓名Sheet1.Cells(1, 2) = 语文Sheet1.Cells(1, 3) = 数学For i = 2 To CInt(s) + 1 Sheet1.Cells(i, 1) = 项 & Mid(z, Int(c * Rnd) + 1, 1) & Mid(z, Int(c * Rnd) + 1, 1) Sheet1.Cells(i, 2) =

13、40 + Int(60 * Rnd) Sheet1.Cells(i, 3) = 10 + Int(90 * Rnd)NextMsgBox 生成模拟考生数据生成完毕!作业:生成模拟单位员工名册End SubSub Input10()数组转变为字符串:Dim A()s = InputBox(请输入一个整数, 内容输入, 50)c = CInt(s)ReDim A(c)For i = 0 To c A(i) = Chr(32 + i)Nexts = Join(A, )MsgBox s作业:测试 Chr(-24414 + i)End SubSub Input11()Select-Case用法:Dim

14、A()s = InputBox(请输入一个英文颜色单词, 内容输入, red)Select Case sCase red MsgBox 红Case green MsgBox 绿Case blue MsgBox 蓝Case black MsgBox 黑Case white MsgBox 白Case Else MsgBox 没有找到!End Select作业:给出十二生肖的年龄组,每一组出示10个年龄。End SubSub Input12()Select-Case用法(数值范围):Dim A()s = InputBox(请输入一个数字, 内容输入, 77)v = CInt(s)Select Cas

15、e vCase 1, 2, 3 MsgBox in (1,2,3)Case 4 To 10 MsgBox in(4 to 10)Case 11 To 15, 21 To 25 MsgBox in(11 To 15, 21 To 25)Case Else MsgBox 没有找到!End Select作业:对考试分数进行分段,判断出:优秀,良好,合格,不及格。End SubSub Input13()输入框:打印预览与直接打印:s = InputBox(打印预览与直接打印:那一范围内, 内容输入, A1:C10)For Each x In Sheet1.Range(s) v = Int(Rnd *

16、56) x.Interior.ColorIndex = v 背景色NextSheet1.Range(s).ColumnWidth = 20 列宽Sheet1.Range(s).RowHeight = 16 行高Sheet1.Range(s).ShrinkToFit = True 自动缩小字体以适应单元格当字号不变:自动换行,行高自动适应: Sheet1.Range(s).WrapText = True 自动换行 Sheet1.Range(s).EntireRow.AutoFit 行高自动适应 Sheet1.Range(s).Borders.LineStyle = xlContinuous 设置

17、单元格边框Sheet1.Range(s).PrintPreview 打印预览Sheet1.Range(s).PrintOut 直接打印作业:生成100教师基本信息表(Sheet3),设计好A4模板(Sheet1),为每一个教师生成可打印的人事档案(Sheet2).End SubSub Input14()数据的复制:s = InputBox(打印预览与直接打印:那一范围内, 内容输入, A1:C10)For Each x In Sheet1.Range(s) v = Int(Rnd * 56) x.Interior.ColorIndex = v 背景色Next当前区域复制到另一表中:Sheet1

18、.Range(s).Copy Sheet2.Range(s)分步进行复制与粘贴:Sheet1.Range(s).CopySheet3.ActivateSheet3.Range(G9).SelectActiveSheet.PasteEnd SubSub Input15()二维数组与Range()的对应关系:s = InputBox(, 内容输入, 10,5)生成二维数组:Dim A()d1 = Split(s, ,)(0)d2 = Split(s, ,)(1)ReDim A(d1, d2) 下标都是从0开始的;For i = 1 To d1For j = 1 To d2 A(i, j) = i

19、& , & jNextNext写入表格Sheet1中:x = 1: y = 1Sheet1.Range(Cells(x, y), Cells(x + d1, y + d2) = A写入另一表格Sheet2中:b = Sheet1.Range(Cells(x, y), Cells(x + d1, y + d2)Sheet2.ActivateSheet2.Range(Cells(x, y), Cells(x + d1, y + d2) = b作业:将数据区域移到A1为起点,10行,5列.End SubVBA_4_1自定义菜单与调用自定义过程(by daode1212)2010年10月22日 星期五

20、 下午 4:29VBA_4_1自定义菜单与调用自定义过程工具栏浮动:一项目/二个按钮- by daode1212Private Sub Workbook_Open()添加菜单End SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)删除菜单End Subvba添加按钮菜单Sub 添加菜单()On Error Resume NextApplication.CommandBars(myMnu).Delete 删除已有菜单Set myMnu = Application.CommandBars.Add 添加新菜单With myMnu .Visi

21、ble = True 属性值(TRUE为显示) .Position = msoBarTop 将此菜单显示在顶部 .Name = myMnuEnd With=Set 子菜单 = myMnu.Controls.Add(Type:=msoControlPopup) 添加新按钮子菜单.Caption = 菜单一Set KJ = 子菜单.Controls.Add(Type:=msoControlButton) 添加新按钮With KJ .Caption = Mcro001 .OnAction = ThisWorkbook.Name & !Mcro001End With=Set KJ = 子菜单.Cont

22、rols.Add(Type:=msoControlButton) 添加新按钮With KJ .Caption = Mcro002 .OnAction = ThisWorkbook.Name & !Mcro002End WithEnd Subvba删除按钮菜单Sub 删除菜单()On Error Resume NextApplication.CommandBars(myMnu).Delete 删除已有菜单End SubVBA_4_1自定义菜单与调用自定义过程工具栏浮动:一项目/二个按钮所用的2模块- by daode1212Sub Mcro001()MsgBox 您好!您选择了菜单一中的Mcro

23、001按钮!, 64, 系统提示End SubSub Mcro002()MsgBox 您好!您选择了菜单一中的Mcro002按钮!, 64, 系统提示End SubVBA_4_3(核)加载宏.xla文件制作方法(原创:老外,修改:daode1212)2010年10月22日 星期五 下午 4:53VBA_4_3(核)加载宏.xla文件制作方法功能:在工具菜单下添加自定义的项与二个按钮修改:daode1212 在加载宏文件ThisWorkbook之内: START ThisWorkbook Code ModuleOption ExplicitPrivate Const C_TAG = ChipAd

24、dIn C_TAG should be a string unique to this add-in.Private Const C_TOOLS_MENU_ID As Long = 30007& the Tool menu IDPrivate Sub Workbook_Open() Workbook_Open Create a submenu on the Tools menu. The submenu has two controls on it.Dim ToolsMenu As Office.CommandBarControlDim ToolsMenuItem As Office.Comm

25、andBarControlDim ToolsMenuControl As Office.CommandBarControl First delete any of our controls that may not have been properly deleted previously.MsgBox 将在工具菜单下添加自定义的项“批量作业”与二个按钮“生成新数据”、“新数据清除”DeleteControls Get a reference to the Tools menu.Set ToolsMenu = Application.CommandBars.FindControl(ID:=C_

26、TOOLS_MENU_ID)If ToolsMenu Is Nothing Then MsgBox Unable to access Tools menu., vbOKOnly Exit SubEnd If Create a item on the Tools menu.Set ToolsMenuItem = ToolsMenu.Controls.Add(Type:=msoControlPopup, temporary:=True)If ToolsMenuItem Is Nothing Then MsgBox Unable to add item to the Tools menu., vbO

27、KOnly Exit SubEnd IfWith ToolsMenuItem .Caption = 批量作业 .BeginGroup = True .Tag = C_TAGEnd With Create the first control on the new item in the Tools menu.Set ToolsMenuControl = ToolsMenuItem.Controls.Add(Type:=msoControlButton, temporary:=True)If ToolsMenuControl Is Nothing Then MsgBox Unable to add

28、 item to Tools menu item., vbOKOnly Exit SubEnd IfWith ToolsMenuControl Set the display caption and the procedure to run when clicked. .Caption = 生成新数据 .OnAction = & ThisWorkbook.Name & !MacroToRunOne .Tag = C_TAGEnd With Create the first control on the new item in the Tools menu.Set ToolsMenuContro

29、l = ToolsMenuItem.Controls.Add(Type:=msoControlButton, temporary:=True)If ToolsMenuControl Is Nothing Then MsgBox Unable to add item to Tools menu item., vbOKOnly Exit SubEnd IfWith ToolsMenuControl Set the display caption and the procedure to run when clicked. .Caption = 新数据清除 .OnAction = & ThisWor

30、kbook.Name & !MacroToRunTwo .Tag = C_TAGEnd WithEnd SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeClose Before closing the add-in, clean up our controls. DeleteControlsEnd SubPrivate Sub DeleteControls() Delete controls whose Tag is equal to C_TAG.Dim Ctrl As Office.CommandBa

31、rControlOn Error Resume NextSet Ctrl = Application.CommandBars.FindControl(Tag:=C_TAG)Do Until Ctrl Is Nothing Ctrl.Delete Set Ctrl = Application.CommandBars.FindControl(Tag:=C_TAG)LoopMsgBox 自定义菜单项已经成功删除。End Sub END ThisWorkbook Code Module=在加载宏文件之模块内: START Module1 Code ModuleOption ExplicitSub Ma

32、croToRunOne() Dim S As String S = 宏来源于: & vbCrLf & ThisWorkbook.FullName MsgBox S Worksheets(sheet1).Range(A1:H20).Interior.ColorIndex = 52 Worksheets(sheet1).Range(A1:H20) = Interior.ColorIndex = 52 Worksheets(sheet1).Range(A1:H20).Font.Size = 5End SubSub MacroToRunTwo() Dim S As String S = 宏来源于: &

33、 vbCrLf & ThisWorkbook.FullName MsgBox S Worksheets(sheet1).Range(A1:H20).Interior.ColorIndex = xlNone Worksheets(sheet1).Range(A1:H20) = Worksheets(sheet1).Range(A1:H20).Font.Size = 10 Worksheets(sheet1).Cells(1, 1) = dog Sheets(sheet1).Cells(2, 1) = pig Sheets(1).Cells(3, 1) = catEnd Sub END Modul

34、e1 Code ModuleVBA_4_2自定义菜单与调用自定义过程(by daode1212)2010年10月22日 星期五 下午 4:32VBA_4_2自定义菜单与调用自定义过程主菜单(帮助之前位):一项目/二个按钮- by daode1212Private Sub Workbook_Open() addToolBar addMenuEnd SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean) uninstallEnd SubSub addToolBar()Dim foundflag As Boolean=增加工具栏中的按钮=foundflag = FalseFor Each ct In Application.CommandBars(standard).Controls

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号