VBA程序代码
- 格式:pptx
- 大小:807.29 KB
- 文档页数:8


.、八、-刖言我们平时在工作表单元格的公式中常常使用函数,EGcel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在 VBA中不能直接应用,必须在函数名前面加上对象,比如:Applicatio n. WorksheetF un ctio n.Sum(arg1,arg2,arg3) 。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串”EGcel”的首字母和” e”的ASCII值。
二、代码:Sub 示例_1_01()DimmyNum1%,myNum2%myNum仁Asc("EGcel")'返回 69myNum2=Asc("e")' 返回 101[a1]="myNum 1=":[b1]=myNum1[a2]="myNum2=":[b2]=myNum2En dSub三、代码详解1、Sub示例_1_01():宏程序的开始语句。
2、DimmyNum1%,myNum2% :变量 myNum1 和 myNum2 声明为整型变量。
也可以写为DimmyNum1AsInteger 。
Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。
Integer的类型声明字符是百分比符号(%)。
3、myNum1=Asc("EGcel"):把 Asc 函数的值赋给变量 myNum1 。
Asc函数返回一个Integer,代表字符串中首字母的字符的 ASCII代码。
语法Asc(stri ng)必要的string (字符串)参数可以是任何有效的字符串表达式。
如果string中没有包含任何字符,则会产生运行时错误。
4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。
vba基础代码VBA基础代码VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。
它可以帮助用户自动化重复性的任务,提高工作效率。
在本文中,我们将介绍一些VBA基础代码,帮助您更好地理解和使用VBA。
1. Sub和FunctionSub和Function是VBA中最基本的代码块。
Sub用于执行一系列操作,而Function则返回一个值。
下面是一个简单的Sub代码块: Sub HelloWorld()MsgBox "Hello World!"End Sub这个代码块将弹出一个消息框,显示“Hello World!”。
下面是一个简单的Function代码块:Function AddNumbers(x As Integer, y As Integer) As IntegerAddNumbers = x + yEnd Function这个代码块将返回两个整数的和。
2. If语句If语句用于根据条件执行不同的操作。
下面是一个简单的If语句:Sub CheckNumber()Dim x As Integerx = InputBox("Enter a number:")If x > 0 ThenMsgBox "The number is positive."ElseIf x < 0 ThenMsgBox "The number is negative."ElseMsgBox "The number is zero."End IfEnd Sub这个代码块将提示用户输入一个数字,并根据数字的正负性弹出不同的消息框。
3. For循环For循环用于重复执行一系列操作。
下面是一个简单的For循环:Sub CountToTen()Dim i As IntegerFor i = 1 To 10MsgBox iNext iEnd Sub这个代码块将弹出10个消息框,分别显示数字1到10。
一些常用的WORDVBA代码这里给大家提供一些比较常用的WORDVBA代码,可以提高大家的办公效率,如果不知道怎么使用这些代码,请自行上网查询WORD如何运行VBA。
1、删除空行Sub删除空行()DimIAParagraph,nAIntegerApplication.ScreenUpdating=FaleForEachIInActiveDocument.ParagraphIfLen(Trim(I.Range))=1Then I.Range.Deleten=n+1EndIfNe某tMgBo某\共删除空白段落\个\Application.ScreenUpdating=TrueEndSub2、奇偶页打印Sub奇偶页打印()Dim某,j,iAIntegerOnErrorReumeNe某t某=E某ecuteE某cel4Macro(\Fori=1ToInt(某/2)+1ActiveWindow.SelectedSheet.PrintOutFrom:=2某i-1,To:=2某i-1Ne某tiIf某=1ThenMgBo某\无偶数页\EleMgBo某\请将打印出的纸张反向装入纸槽中\打印另一面\Forj=1ToInt(某/2)+1ActiveWindow.SelectedSheet.PrintOutFrom:=2某j,To:=2某jNe 某tjEndIfEndSub3、中英文标点互换Sub中英文标点互换()DimChineeInterpunction()AVariant,EnglihInterpunction()AVaria ntDimmyArray1()AVariant,myArray2()AVariant,trFindAString,trRepAS tringDimmgReultAVbMgBo某Reult,NAByte'定义一个中文标点的数组对象ChineeInterpunction=Array(\、\,\。
常⽤VBA代码VBA代码(珍藏)'**关闭屏幕刷新Application.ScreenUpdating = False'**取消删除⼯作表警告提⽰Application.DisplayAlerts = False'**引⽤打开窗⼝Dim fd As FileDialogDim vrtSelectedItem As VariantSet fd = Application.FileDialog(msoFileDialogOpen)fd.InitialFileName = Sheets('设置').Range('CU7').Value & '\库存核对' '默认打开的⽂件夹 With fd.AllowMultiSelect = True '可选多个⽂件If .Show = -1 ThenFor Each vrtSelectedItem In .SelectedItemsFJ = Split(vrtSelectedItem, '\')ThisWorkbook.Sheets('设置').Range(CR).Value = FJ(3) '记录⽂件名ThisWorkbook.Sheets('设置').Range('AG1').Value = FJ(3) '记录⽂件名fd.Execute '执⾏打开mandButton62.Enabled = TrueExit ForNextEnd IfEnd WithSet fd = Nothing****得到计算机名称Environ('Computername')****判断是不是数字If IsNumeric(InputBox('Please Input:')) Then****筛选⾮空单元格ActiveSheet.Range('$E$7:$I$15').AutoFilter Field:=1, Criteria1:='<>'****仅贴值Range('F5:J25').SelectSelection.CopyRange('E5').SelectActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _IconFileName:=False****设置是否冻结空格ActiveWindow.FreezePanes = FalseActiveWindow.FreezePanes = True****设置页⾯With ActiveSheet.PageSetup.LeftFooter = '编制:审核:' '页脚LEFT.PrintTitleRows = '$1:$3' '要打印的默认页头.PrintArea = '$A$1:$E$12' '打印区域End With.PrintOut Copies:=2 '打印(2份)****设置批注Range('F8').AddComment'添加批注Range('F8').Comment.Visible = False'隐藏框.Comment.Shape.TextFrame.AutoSize = True'⾃动调整框⼤⼩.Comment.Font.FontStyle = '常规' '将字体设置为“常规”(不加粗)(不成功) '-------------------------------------Range('F8').Comment.Text Text:='黄传兵:' & Chr(10) & 'SS'If Range('F8').Comment Is Nothing Then '如果没有批注内容Public Function OPEN_JL(WJ As String) '检测是否有相应引⽤⽂件的打开记录 Dim I As IntegerDim MC, MC_CR As StringL3 = ThisWorkbook.Sheets('设置').Range('N2').ValueFor I = 4 To L3 + 3MC_CR = 'N' & IMC = ThisWorkbook.Sheets('设置').Range(MC_CR).ValueIf UCase(MC) = UCase(WJ) ThenOPEN_JL = 'Y'Exit ForEnd IfNext IEnd Function'打开需引⽤的⽂件Public Sub OPEN_WJ(LJ, WJ As String)On Error GoTo X:Dim M4, Y3 As StringDim LJWJ As StringLJWJ = LJ & WJIf OPEN_YN(WJ) <> 'Y' Then '如果未被其它引⽤并打开Workbooks.Open Filename:=LJWJL3 = ThisWorkbook.Sheets('设置').Range('N2').ValueM3_CR = 'N' & L3 + 4M4_CR = 'O' & L3 + 4ThisWorkbook.Sheets('设置').Range(M3_CR).Value = WJThisWorkbook.Sheets('设置').Range(M4_CR).Value = 1Windows(WJ).Visible = FalseElse '如果已被其它引⽤并打开If OPEN_JL(WJ) = '' ThenL3 = ThisWorkbook.Sheets('设置').Range('N2').ValueM3_CR = 'N' & L3 + 4M4_CR = 'O' & L3 + 4ThisWorkbook.Sheets('设置').Range(M3_CR).Value = WJThisWorkbook.Sheets('设置').Range(M4_CR).Value = 2End IfEnd IfExit SubX:MsgBox ''' & WJ & ''未打开,请检查路径。