VBA 常用语句
VBA常用语句
常用的、带解释的VBA 短句对于VBA的初学者来说,很想了解一些VBA短句的含义。
1、[A65536].End(xlUp).Row 'A列末行向上第一个有值的行数2、[A1].End(xlDown).Row 'A列首行向下第一个有值之行数3、[IV1].End(xlToLeft).Column '第一行末列向左第一列有数值之列数。
4、[A1].End(xlToRight).Column '第一行首列向右有连续值的末列之列数5、mandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符6、Cells.WrapText = False '取消自动换行If Len(Target) > 5 Then '如果当前单元格中的字符数超过5个,执行下一行Target.WrapText = True '自动换行End If7、[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden = True '有空格即隐藏行8、[A2] '返回活动单元格的工作表名9、[A2] '返回活动单元格的工作簿名10、Private Sub Workbook_Open() '工作簿打开事件tt '工作簿打开时启动tt 过程End Sub11、Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) '工作表变化事件tt '工作表中任一单元格有变化时启动tt 过程End Sub12、Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件tt '工作表中单元格的选择有变化时启动tt 过程End Sub13、Sub tt() 'tt 过程Dim myNow As Date, BL As Integer '定义myNow为日期型;定义BL为长整型myNow = Now '把当前的时间赋给变量myNowDo '开始循环语句DoBL = Second(Now) - Second(myNow) '循环中不断检查变量BL的值If BL = 30 Then GoTo Cl '当BL=30即跳转到CLDoEvents '转让控制权,以便sheets可继续操作Loop Until BL > 30 '当BL>30即跳出循环Exit SubCl:Application.EnableEvents = False '避免引起其他事件ActiveWorkbook.Close True '关闭活动工作簿并保存Application.EnableEvents = True '可触发其他事件End Sub14、range("e4").addcomment.Text "代头" & Chr(10) & "内容……"'添加批注15、range("e4").Comment.Visible = True '显示批注16、Sub 调整列宽()Dim i%For i = 1 To Sheets.Count '遍历工作簿中所有的工作表Sheets(i).Columns("A:K").AutoFit '把每个工作表的[A:K]列调整为最佳列宽Next iEnd Sub17、Do循环语句的几种形式:1.Do While i>1 '条件为True时执行... ... '要执行的语句Loop2.Do Until i>1 '条件为False时执行... ... '要执行的语句Loop3.Do... ... '要执行的语句Loop While i>1 '条件为True时执行4.Do... ... '要执行的语句Loop Until i>1 '条件为False时执行5.While...Wend 语句While i>1 '条件为True时执行... ... '要执行的语句Wend18、勾选"VBA项目的信任"Application.SendKeys "%(tmstv){ENTER}" '在Excel 窗口操作Application.SendKeys "%(qtmstv){ENTER}" '在VBE 窗口操作19、mandBars("命令按钮名称").Position = msoBarFloating '使[命令按钮]悬浮在表格中20、mandBars("命令按钮名称").Position = msoBarTop '使[命令按钮]排列在工具栏中21、ActiveSheet.protect Password:="wshzw" '为工作表保护加口令22、ActiveSheet.Unprotect Password:="wshzw" '解除工作表保护23、Activesheet.ProtectContents '判断工作表是否处于保护状态24、工作表的复制与命名Sub wshzw()Dim i As IntegerFor i = 1 To 5Sheets("Sheet1").Copy After:=Sheets(1) 'Before/After 复制新表在Sheets("Sheet1") 前/后 = i & "月" '为复制的新表命名Next iSheets("Sheet1").Name = "总表" '为Sheets("Sheet1") 改名End Sub25、 Application.EnableEvents = True '抑制事件连锁执行26、ActiveWorkbook.Save '抑制BeforeSave事件的发生27、Application.EnableEvents = True '抑制指定事件28、Application.DisplayAlerts=False '屏蔽确认提示29、Application.ScreenUpdating = False30、Application.ScreenUpdating = true ' 冻结屏幕以加快程序运行31、ActiveCell.CurrentRegion.Select '选择与活动单元格相连的区域32、range("a2:a20").NumberFormatLocal = "00-00" '区域的格式化33、ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row '已用区域的最末行34、ActiveSheet.Copy Before:=Sheets(1) '复制活动工作表到第一张工作表之前35、range("a2:a20").FormulaHidden = True '工作表处于保护状态时隐藏部分单元格公式36、FileDateTime("E:\My Documents\33.xls")或FileDateTime(thisworkbook.FullName) '文件被创建或最后修改后的日期和时间37、FileLen(thisworkbook.FullName) / 1024或FileLen("E:\My Documents\temp\33.xls") / 1024 '文件的长度(大小),单位是KB38、Application.AskToUpdateLinks = False '不询问是否更新链接,并自动更新链接39、ActiveSheet.Hyperlinks.Delete '删除活动工作表超链接40、ActiveWorkbook.SaveLinkValues = False '不保存活动工作簿的外部链接值41、ActiveSheet.PageSetup.CenterFooter = Range("k2").Value '打印时设置自定义页脚42、ActiveSheet.PageSetup.Orientation = xlLandscape '设置为横向打印43、ActiveSheet.PageSetup.Orientation = xlPortrait '设置为纵向打印44、Application.WindowState = xlMinimized '最小化窗口45、Application.WindowState = xlNormal '最大化窗口46、Sub 删除工作表()Application.DisplayAlerts = FalseSheet1.DeleteApplication.DisplayAlerts = TrueEnd Sub47、添加工作表Sub 添加工作表()For i = 1 To 5 = iNextEnd Sub48、[A1:A20].AdvancedFilter xlFilterCopy, [B1], Unique:=True '可去掉重复数据49、[A2:C32].Replace What:="F", Replacement:="G" '指定范围内的查找与替换50、Activesheet.AutoFilterMode = false '取消自动筛选51、edRange.ClearComments '清除活动工作表已使用范围所有批注52、edRange.ClearFormats '清除活动工作表已使用范围所有格式53、edRange.Validation.Delete '取消活动工作表已使用范围的数据有效性54、ActiveSheet.Hyperlinks.Delete '删除活动工作表超链接55、ActiveSheet.DrawingObjects.Delete '删除活动工作表已使用范围的所有对象56、edRange = edRange.Value '取消活动工作表已使用范围的公式并保留值57、还有:Sub x()Dim myRange As StringmyRange = edRange.Address '去除活动工作表无数据的行列End Sub58、ActiveWorkbook.FullName '当前窗口文件名与路径59、Application.AltStartupPath= "E:\My\MyStart" '替补启动目录路径60、Application.AutoRecover.Path '返回/设置Excel存储"自动恢复"临时文件的完整路径61、Application.DefaultFilePath '选项>常规中的默认工作目录62、Application.Evaluate("=INFO(""directory"")") '默认工作目录63、Application.LibraryPath '返回库文件夹的路径64、workTemplatesPath '返回保存模板的网络路径65、Application.Path '返回应用程序完整路径66、Application.RecentFiles.Item(1).Path '返回最近使用的某个文件路径,Item(1)=第一个文件67、Application.StartupPath 'Excel启动文件夹的路径68、Application.TemplatesPath '返回模板所存储的本地路径69、erLibraryPath '返回用户计算机上COM 加载宏的安装路径70、Debug.Print Application.PathSeparator '路径分隔符"\"71、CurDir '默认工作目录72、Excel.Parent.DefaultFilePath '默认工作目录73、ThisWorkbook.Path '返回当前工作薄的路径74、dim mm(2,10)Range("a1:b10")=mm '可以将二维数组赋值给Range75、Application.Dialogs(XLdialogsaveas).show 显示保存对话框。
VBA常用语句(with语句)
VBA常用语句(with语句)观察一下我们做合并工作表以及一些其它任务的VBA代码就会发现,我们经常能看到一些语句,例如:ifend if之类的固定语句,这些就是VBA中常用的基本语句。
这些语句可以实现循环、逻辑判断等等目的。
VBA中的语句有70多种,今天我们学习最常用的四种语句中的第一种。
1、With语句正常情况下我们完成下列需求:选择单元格A1,设置字体加粗,倾斜,加下划线,底色为黄色。
代码如下:Sub 宏1()Range('A1').Font.Bold = TrueRange('A1').Font.Italic = TrueRange('A1').Font.Underline = xlUnderlineStyleSingleRange('A1').Interior.Color = 65535End Sub对象.属性.属性值这样,每个属性前面的对象都要重复写。
用with正好可以解决这个事情。
结构如下:with 对象.属性1=属性值.属性2=属性值.属性3=属性值…….属性N=属性值end with上面代码修改后如下:Sub 宏2()With Range('A1').Font.Bold = True.Font.Italic = True.Font.Underline = xlUnderlineStyleSingle.Interior.Color = 65535End WithEnd Sub这样就可以避免每次都要重复写对象了。
今天的分享就到这里。
只要你行动,离梦想就会更近一步,欢迎加入我们的学习行列,经常问问题的同学也希望你能转发、分享、赞赏,帮助别人也是在帮自己。
想报名参加培训的同学请联系本人微信:527240310,针对你日常工作中遇到的问题进行培训,培训时会发你素材,同步操作,让你真正学明白。
一次报名后,后期录制的所有视频均可免费观看。
VBA-语句汇总
VBA-语句(yǔjù)汇总VBA-语句(yǔjù)汇总程序(chéngxù)错误继续执行On Error Resume Next屏幕(píngmù)不更新Application.ScreenUpdating = FalseApplication.ScreenUpdating = True警示(jǐnɡ shì)为假Application.DisplayAlerts = False关掉文件(wénjiàn)不保存Windows().ActivateActiveWorkbook.Close savechanges:=False定义选中区域(qūyù)的坐标dim x,yx = Selection.Row() '行数y = Selection.Column() '列数单元格所在的行数ActiveCell.Row ‘活动单元格所在的行数ActiveCell.Column ‘活动单元格所在的列数通过使用行列编号,可用 Cells 属性来引用单个单元格。
该属性返回代表单个单元格的 Range 对象。
下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value 属性设置为 10。
Sub EnterValue()Worksheets("Sheet1").Cells(6, 1).Value = 10End Sub因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例所示。
Sub CycleThrough()Dim Counter As IntegerFor Counter = 1 To 20Worksheets("Sheet1").Cells(Counter, 3).Value = CounterNext CounterEnd Sub在命名区域(qūyù)中的单元格上循环下例用 For Each...Next 循环语句在命名区域中的每一个单元格上循环。
VBA中简单实用的语句
常用语句(1).工作簿1.O n Err or Re sumeNext '忽略错误继续执行VBA代码,避免出现错误消息2.On Erro r GoT o Err orHan dler '当错误发生时跳转到过程中的某个位置3.App licat ion.D ispla yAler ts=Fa lse '在程序执行过程中使出现的警告框不显示4.App licat ion.S creen Updat ing=F alse'关闭屏幕刷新Appli catio n.Scr eenUp datin g=Tru e '打开屏幕刷新5.Ac tiveW orkbo ok.na me '返回活动工作薄的名称6.Activ eWork book.Windo wStat e=xlM aximi zed '将当前工作簿最大化7.Shee ts(Sh eet1).Name= “Su m” '将Shee t1命名为Sum8.Work sheet s(Arr ay(“s heet1”,”sh eet2”)).Se lect'同时选择工作表1和工作表29.Acti veShe et.Us edRan ge.Fo rmatC ondit ions.Delet e '删除当前工作表中所有的条件格式10.A ctive Sheet.Page Setup.Orie ntati on=xl Lands cape或Activ eShee t.Pag eSetu p.Ori entat ion=2 '将页面设置更改为横向11.Cel ls.Se lect'选定当前工作表的所有单元格12.Ran ge(“A1”).C learC onten ts '清除活动工作表上单元格A1中的内容 Sele ction.Clea rCont ents '清除选定区域内容 Rang e(“A1:D4”).Clea r '彻底清除A1至D4单元格区域的内容,包括格式13.Activ eCell.Offs et(1,0).Se lect'活动单元格下移一行,同理,可下移一列Ra nge(“A1”).Offse t(Col umnOf fset:=1) 或 Rang e(“A1”).Of fset(,1) '偏移一列 Rang e(“A1”).Of fset(Rowof fset:=-1)或 Ran ge(“A1”).O ffset(-1)'向上偏移一行14.Acti veWin dow.R angeS elect ion.V alue=XX '将值X X输入到所选单元格区域中15.Acti veWin dow.R angeS elect ion.C ount '活动窗口中选择的单元格数16.Ra nge(“A1”).Inter ior.C olorI ndex或 Cel ls(1,1).In terio r.Col orInd ex '获取单元格A1背景色17.Nam es.Ad d Nam e:=”M yArra y”,Re fersT o:=Ar rayNu m '将数组Arra yNum命名为MyA rray18.Na mes.A dd Na me:=”Produ ceNum”:,Re fersT o:=”=$B$1”,Visi ble:=False '将名称隐藏19.Ce lls(8,8).F ormul aArra y=”=S UM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)” '在单元格中输入数组公式。
常用VBA基础语句
常用VBA语句(1)Option Explicit '强制对模块内所有变量进行声明(2)Option Base 1 '指定数组的第一个下标为1(3)On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(4)On Error GoTo 100 '当错误发生时跳转到过程中的某个位置(5)On Error GoTo 0 '恢复正常的错误提示(6)Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示(7)Application.DisplayAlerts=True '在程序执行过程中(8)Application.ScreenUpdating=False '关闭屏幕刷新(9)Application.ScreenUpdating = True '打开屏幕刷新(10)Workbooks.Add() '创建一个新的工作簿(11)Workbooks(“book1.xls”).Activate '激活名为book1的工作簿(12)T hisWorkbook.Save '保存工作簿(13)T hisWorkbook.close '关闭当前工作簿(14)ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数(15) '返回活动工作薄的名称(16)T ‘返回当前工作簿名称(17)T hisWorkbook.FullName ‘返回当前工作簿路径和名(18)(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19)R ows.Count ‘获取工作表的行数(注:考虑兼容性)(20)Sheets(Sheet1).Name= “Sum”'将Sheet1命名为Sum(21)ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22)ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后(23)Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2(24)Sheets(“sheet1”).Delete或Sheets(1).Delete '删除工作表1(25)edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(26)Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(27)A ctiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,上下左右无空行(28)Cells.Select ‘选定当前工作表的所有单元格(29)Range(“A1”).ClearContents '清除活动工作表上单元格A1中的Selection.ClearContents'清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(30)Cells.Clear '清除工作表中所有单元格的内容(31)A ctiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(32)Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中(33)R ange(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中(34)R ange(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中(35)R ange(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(36)A ctiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(37)Selection.Count '当前选中区域的单元格数(38)R ange(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(39)cells.count ‘返回当前工作表的单元格数(40)R ange(“B3”).Resize(11, 3)(41)U nion(Range(“A1:A9”),Range(“D1:D9”)) 区域连接(42)I ntersect(Range(“A1:B9”),Range(“A1:D9”))) ‘返回的交叉区域(43)Selection.Columns.Count ‘当前选中的单元格区域中的列数(44)S election.Rows.Count ‘当前选中的单元格区域中的行数(45)A edRange.Row ‘获取单元格区域中使用的第一行的行号(46)Application.WorksheetFunction.IsNumber(“A1”) '使用工作表函数检查A1单元格中的数据是否为数字(47)R ange(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate'激活单元格区域A列中最大值的单元格(48)M sgBox “Hello!”'消息框中显示消息Hello(49)A ns=MsgBox(“Continue?”,vbYesNo) '在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。
vba中声明语句
vba中声明语句VBA(Visual Basic for Applications)是Microsoft Office套件中的一种宏编程语言,用于自动化处理Office文档、表格和数据。
在VBA中,声明语句用于声明变量、常量、对象和函数等。
下面将列举10个常见的VBA声明语句。
1. 声明整型变量:```vbaDim i As Integer```在这个声明语句中,变量i被声明为一个整型变量。
整型变量用于存储整数值。
2. 声明字符串变量:```vbaDim str As String```这个声明语句中,变量str被声明为一个字符串变量。
字符串变量用于存储文本。
3. 声明双精度浮点型变量:```vbaDim d As Double```在这个声明语句中,变量d被声明为一个双精度浮点型变量。
双精度浮点型变量用于存储带小数点的数值。
4. 声明布尔型变量:```vbaDim b As Boolean```在这个声明语句中,变量b被声明为一个布尔型变量。
布尔型变量只能存储True或False。
5. 声明日期型变量:```vbaDim dt As Date```在这个声明语句中,变量dt被声明为一个日期型变量。
日期型变量用于存储日期和时间。
6. 声明对象变量:```vbaDim rng As Range```这个声明语句中,变量rng被声明为一个对象变量。
对象变量用于引用和操作Excel中的单元格、工作表和工作簿等对象。
7. 声明常量:```vbaConst PI As Double = 3.14159```在这个声明语句中,常量PI被声明为一个双精度浮点型常量,并被赋值为3.14159。
常量在程序执行过程中保持不变的值。
8. 声明函数:```vbaFunction Sum(a As Integer, b As Integer) As IntegerSum = a + bEnd Function```这个声明语句中,函数Sum被声明为一个带有两个整型参数和一个整型返回值的函数。
VBA常用语句
获取名字:WorkbookName主表 =Sheet透视表 =选定:Windows(WorkbookName主表).ActivateSheets("取数").SelectRange("A1").SelectRange("K1:M3").Select单元格赋值:Range("A1")="Abc"[A1]="Abc"Cells(行, 列)=""单元格跨薄引用(不打开工作薄而提取数据):='F:\负债业务日报\prg\[模板]金融资产'!F5:F5或:Range("A28").FormulaArray = "=[模板]金融资产!D4:D4"Range("A28").Formula = "=[模板]金融资产!D4:D4"是否显示警告信息:= False 'True= 显示警告信息显示提示信息:MsgBox "包括完整路径的工作簿名称为:" &选择是否提示:If MsgBox("设为汇总的单元格是:" & & " 确定吗", vbYesNo) = vbNo Then Exit Sub 关闭薄:Windows(Workbook表).Close删除子表:Sheets("操作步骤").Delete 或:Sheets(Sheet透视表).Select删除行Rows("2:316").Select= FalseShift:=xlUpRange("A2").Select删除单元格:Range("B5").Delete对象的完整引用:Windows("模板").ActivateRange("A28") = ("模板20_表内数据转换").Sheets("操作步骤").Range("F7")更简洁地:[A28]=Workbooks("模板").Sheets("操作步骤").Range("F7")复制单元格(带格式):Sub Macro1()Range("A1:C3").SelectRange("C1").SelectEnd Sub同薄复制单元格(带格式)Sub Macro_1()Range("A1").Copy Range("C1")End Sub同薄复制单元格区域(空白为边界)Sub RngCopy()Range("A1"). Range("G1") 'G1应在当前活动工作表或Windows("模板").ActivateWorksheets("操作步骤").Range("F7"). Worksheets("发布0").Range("D9")或 Sheets("操作步骤").Range("F7"). Sheets("发布0").Range("D9")End Sub同薄复制单元格,去掉多余的激活和选择Range("A1").Copy Sheets("Sheet2").Range("B1")通过数组读写单元内容(不带格式):Sub RngArr()Dim arr As Variant '定义变量arr = Range("A1:C3").Value '将A1:C3单元格的内容存储到数组arr里Range("E1:G3").Value = arr '将数组arr的数据写入E1:G3单元格区域End Sub实例:Dim arr As VariantWindows("模板").Activatearr = Sheets("金融资产").Range("D4:AX82").Value'Windows("模板").ActivateSheets("金融资产").Range("D4:AX82").Value = arr全表复制粘贴:Windows(Workbook表).ActivateSheets("表1").Select'全选Windows(WorkbookName主表).ActivateSheets("表2").SelectWindows(Workbook表).Close复制值:Filename:="存款表.xls"Windows("模板").ActivateSheets("发布").SelectRange("C4:H4").SelectRange(Selection, (xlDown)).Select 'Shift+Ctrl+下键' Range(Selection, (xlToRight)).Select 'Shift+Ctrl+右键' Range(Selection, (xlLastCell)).Select 'Ctrl+End 键Windows("存款表.xls").ActivateSheets("人民币").SelectRange("C4").SelectPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False '复制值保存薄:新建薄并保存修改结果:(复制区域SUB,在下面)WorkbookName新薄 =Call 复制区域SUB((WorkbookName日报表), "发布3", "A1:CF82", (WorkbookName新薄), "Sheet1", "A1")Workbooks(WorkbookName新薄).Close SaveChanges:=True, Filename:=C_PRG路径 & "测试表.xls"原名保存文件,不显示警告信息框= False= True关闭不保存,不显示警告信息框= False '不显示= True '显示是否显示屏幕变化= False= True是否显示Excel界面= False '不显示Excel界面 True 'False= True打开文件:TXT_Name = ("文本文件(*.txt), *.txt") '获取文件Filename:=TXT_NameFilename:=C_PRG路径 & "模板"另一种:If MsgBox("[B1]单元内容应先设为读取的文件名, 准备好了吗", vbYesNo) = vbNo Then 'Exit SubXLS_Name = ("Excel文件(*.xls), *.xls")Range("B1") = XLS_NameElseXLS_Name = Range("B1") '读取的文件名End IfFilename:=XLS_NameWorkbook表名 =总行数:已用区域行数 = Sheets("基金取数"). '已用区域行数已用区域列数 = Sheets("基金取数"). '已用区域行数右下角地址 = Cells(已用区域行数, 已用区域列数).Address MsgBox Range("A1:" & 右下角地址).Address '区域地址已用区域地址MsgBox 0) '已用区域地址或:已选定区域行数 = '已选定范围的行数[B1] = 已用区域行数或:最后行号 = Range("B5").End(xlDown).Row 'B列最后行号,可用,B5下方不应有空单元格最后列号 = Range("A4").End(xlToRight).Column列名 = Columns(最后列号).Address '得出如: $N$N最后行号 = Cells, 3).End(xlUp).Row 'C列最后行号,比较通用相当于:最后行号 = Range("C65536").End(xlUp).Row '最后行号,可用,V2003获取行列坐标:列 =行 =或列 =行 =设置公式(填充):(关联的透视表最后列并不固定)Sheets("透视表").Select最后列号 = Range("A4").End(xlToRight).Column '最后列号列名 = Columns(最后列号).AddressSheets("金额").Select最后行号 = Range("C4").End(xlDown).Row '最后行号Range("E5").Select= "=SUMIF(透视表!A:A,B:B,透视表!" & 列名 & ")" '设置公式Destination:=Range("E5:E" & 最后行号) '填充消除表内容:消除内容:把每个数字转换成9位字符,不足者前面添0, 在单元格输入公式:=REPT(0,9-LEN(A23)) &A23用代码简化输入(在[代码]工作表中有A列代码,B列名称)在工作表A列输入代码后,在B列得出名称,B2单元格输入公式:=IF(ISERROR(VLOOKUP(A2,代码!A:B,2,FALSE)),"",VLOOKUP(A2,代码!A:B,2,FALSE))冻结窗口Range("C4").Select= True '冻结窗口,C4起查找包括X的单元格(what:="X").Activate列 =行 =或:行号 = (what:="X").Row列号 = (what:="X").Column通过短名(简称)求长名代码=LOOKUP(0,0*FIND(简称!$A$2:$A$112,A3),简称!$B$2:$B$112)其中:[简称!$A$2:$A$112] 为简称,[简称!$B$2:$B$112] 为行号,A3为网点全名============================================================================== ====================Sub 复制表1已用区域值到表2A1(源薄名 As String, 源表名 As String, 目标薄名 As String, 目标表名 As String)Windows(源薄名).ActivateWith Sheets(源表名).UsedRange '整个已用区域,自动计算区域大小Windows(目标薄名).ActivateSheets(目标表名).[A1].Resize(., . = .ValueEnd WithEnd Sub============================================================================== ====================Sub 复制表1区域值到表2(源薄名 As String, 源表名 As String, 源区域 As String, 目标薄名 As String, 目标表名 As String, 目标左上格 As String)'自动计算区域大小,目标区域只需定位左上角单元格Windows(源薄名).ActivateSheets(源表名).SelectRange(源区域).SelectWith Selection '已选定区域Windows(目标薄名).ActivateSheets(目标表名).Range(目标左上格).Resize(., . = .ValueEnd WithEnd Sub==============================================================================Sub 数组方式复制整表(源路径薄名As String, 目标薄名As String, 目标表名As String) '比较快'SUB:源薄名调用前已打开,复制后关闭复制值''要求: 目标区域只需定位左上角单元格'调用: Call 数组方式复制整表(Worksheets("操作步骤").Range("G9").Value, (WorkbookName主表), "表内人民币")Dim arr As VariantFilename:=源路径薄名 'Worksheets("操作步骤").Range("G9").Value源薄名 =区域 = 0) '已用区域地址arr = Range(区域).Value'关闭源薄Windows(目标薄名).ActivateSheets(目标表名).Range(区域) = arrEnd Sub==============================================================================Sub 数组方式复制区域值SUB(源薄名 As String, 源表名 As String, 源区域 As String, 目标薄名 As String, 目标表名 As String, 目标区域 As String)'SUB:源薄名调用前已打开不关闭复制值''要求: 目标区域大小 = 源区域大小'调用: Call 数组方式复制区域值SUB((Workbook模板20), "金融资产", "D4:AX82", (WorkbookName日报表), "金融资产", "D4:AX82")Dim arr As VariantWindows(源薄名).Activatearr = Sheets(源表名).Range(源区域).ValueWindows(目标薄名).ActivateSheets(目标表名).Range(目标区域).Value = arrEnd Sub==================================================================================================Sub 数组方式复制区域值SUB2(源薄名As String, 源表名As String, 源区域As String, 目标薄名 As String, 目标表名 As String, 目标左上格 As String)'SUB:源薄名调用前已打开不关闭复制值''要求: '自动计算区域大小,目标区域只需定位左上角单元格'调用: Call 数组方式复制区域值SUB2((Workbook模板20), "金融资产", "D4:AX82", (WorkbookName日报表), "金融资产", "D4")Dim arr As VariantWindows(源薄名).ActivateSheets(源表名).SelectRange(源区域).Select区域高 = 区域宽 = = Sheets(源表名).Range(源区域).ValueWindows(目标薄名).ActivateSheets(目标表名).Range(目标左上格).Resize(区域高, 区域宽) = arr'MsgBox Sheets(目标表名).Range(目标左上格).Resize(区域高, 区域宽).AddressEnd Sub============================================================================== ====================Sub 复制整表SUB(源薄名 As String, 源表名 As String, 目标薄名 As String, 目标表名 As String)' = False 'True 显示警告信息Filename:=源薄名 'Worksheets("操作步骤").Range("G9").ValueWorkbook表 =Sheets(源表名).SelectWindows(目标薄名).ActivateSheets(目标表名).Select'Windows(Workbook表).Close' = True 'False 'True 显示警告信息End Sub============================================================================== ==Sub 复制区域SUB(源薄名 As String, 源表名 As String, 源区域 As String, 目标薄名As String, 目标表名 As String, 目标区域 As String)Windows(源薄名).ActivateSheets(源表名).SelectRange(源区域).SelectRange(Selection, (xlDown)).SelectWindows(目标薄名).ActivateSheets(目标表名).SelectRange(目标区域).SelectPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False '复制值End Sub============================================================================== ==文件是否存在Sub TestFile()MsgBox "下面将判断当前目录下是否存在“员工花名册.xls”工作薄文件。
必须收藏!Excel-VBA语法200句
[VBA] 语法200句定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option CompareText '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoToErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(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) '返回活动工作薄的名称(14) 『返回当前工作簿名称ThisWorkbook.FullName 『返回当前工作簿路径和名称(15)ActiveWindow.EnableResize=False 『禁止调整活动工作簿的大小(16)Application.Window.Arrange xlArrangeStyleTiled 『将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized『将当前工作簿最大化工作表(18)edRange.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=Not ActiveWindow.DisplayGridlines '切换工作表中的网网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27)ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings 『切换工作表中的行列边框显示(28)edRange.FormatConditions.Delete 『删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete 『取消当前工作表所有超链接(30)ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2'将页面设置更改为横向(31)ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName 『在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=erName『将用户名放置在活动工作表的页脚单元格/单元格区域(32)ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select'选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select 『选定当前工作表的所有单元格(34) Range(「A1」).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(「A1:D4」).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36)ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(「A1」).Offset(ColumnOffset:=1)或Range(「A1」).Offset(,1)『偏移一列 Range(「A1」).Offset(Rowoffset:=-1)或Range(「A1」).Offset(-1) 『向上偏移一行(38) Range(「A1」).Copy Range(「B1」) '复制单元格A1,粘贴到单元格B1中Range(「A1:D8」).Copy Range(「F1」) '将单元格区域复制到单元格F1开始的区域中Range(「A1:D8」).Cut Range(「F1」) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(「A1」).CurrentRegion.CopySheets(「Sheet2」).Range(「A1」) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(39)ActiveWindow.RangeSelection.Value=XX '将值XX输入到所选单元格区域中(40)ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(41) Selection.Count '当前选中区域的单元格数(42)GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,」」) 『返回单元格中超级链接的地址并赋值(43) TextColor=Range(「A1」).Font.ColorIndex 『检查单元格A1的文本颜色并返回颜色索引 Range(「A1」).Interior.ColorIndex 『获取单元格A1背景色(44) cells.count 『返回当前工作表的单元格数(45) Selection.Range(「E4」).Select 『激活当前活动单元格下方3行,向右4列的单元格(46) Cells.Item(5,」C」) 『引单元格C5Cells.Item(5,3) 『引单元格C5(47) Range(「A1」).Offset(RowOffset:=4,ColumnOffset:=5)或 Range(「A1」).Offset(4,5) 『指定单元格F5(48) Range(「B3」).Resize(RowSize:=11,ColumnSize:=3)Rnage(「B3」).Resize(11,3) 『创建B3:D13区域(49) Range(「Data」).Resize(,2) 『将Data区域扩充2列(50) Union(Range(「Data1」),Range(「Data2」)) 『将Data1和Data2区域连接(51) Intersect(Range(「Data1」),Range(「Data2」)) 『返回Data1和Data2区域的交叉区域(52) Range(「Data」).Count 『单元格区域Data中的单元格数Range(「Data」). Columns.Count 『单元格区域Data中的列数Range(「Data」). Rows.Count 『单元格区域Data中的行数(53) Selection.Columns.Count 『当前选中的单元格区域中的列数Selection.Rows.Count 『当前选中的单元格区域中的行数(54) Selection.Areas.Count 『选中的单元格区域所包含的区域数(55) edRange.Row 『获取单元格区域中使用的第一行的行号(56) Rng.Column 『获取单元格区域Rng左上角单元格所在列编号(57)ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions) 『在活动工作表中返回所有符合条件格式设置的区域(58) Range(「A1」).AutoFilterField:=3,VisibleDropDown:=False 『关闭由于执行自动筛选命令产生的第3个字段的下拉列表名称(59) Range(「A1:C3」).Name=「computer」『命名A1:C3区域为computer 或Range(「D1:E6」).Name=「Sheet1!book」『命名局部变量,即Sheet1上区域D1:E6为book或Names(「computer」).Name=「robot」『将区域computer重命名为robot(60) Names(「book」).Delete 『删除名称(61) Names.Add Name:=「ContentList」,_RefersTo:=「=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))」『动态命名列(62) Names.Add Name:=「Company」,RefersTo:=「CompanyCar」『命名字符串CompanyCar(63) Names.Add Name:=「Total」,RefersTo:=123456『将数字123456命名为Total。
vba基本语句
vba基本语句VBA(Visual Basic for Applications)是一种在Microsoft Office中常用的编程语言。
以下是一些基本的VBA语句:声明变量:在VBA中,你需要在使用变量之前对其进行声明。
否则,VBA会将其视为Variant类型。
Dim myVariable As Integer赋值:你可以使用等号(=)为变量赋值。
myVariable = 10输出:你可以使用MsgBox函数在屏幕上显示消息。
MsgBox "Hello, World!"条件语句:If...Then...Else语句用于根据条件执行不同的代码块。
If myVariable > 10 ThenMsgBox "myVariable is greater than 10."ElseMsgBox "myVariable is not greater than 10."End If循环:For...Next语句用于重复执行一段代码。
For i = 1 To 10MsgBox "This is loop iteration " & iNext i数组:你可以创建和操作数组。
Dim myArray(3) As IntegermyArray(0) = 10myArray(1) = 20myArray(2) = 30myArray(3) = 40函数定义:你可以定义自己的函数。
Function MyFunction(myParameter As Integer) As Integer MyFunction = myParameter * 2End Function调用函数:你可以调用你的函数。
Dim result As Integerresult = MyFunction(10)MsgBox result ' Outputs 20。
第六章VBA常用语句
第六章VBA常用语句第6章 VBA常用语句在VBA的程序代码中,语句是程序的主要成份,或者说是程序的主体部分。
每个语句以回车键结束。
6.1 语句在默认情况下,在VBE中输入语句后,VBE将自动进行语法检查,如果发现语法错误,将打开一个提示对话框。
6.1.1 自动格式化输入VBA语句后,VBE将按一定的规则进行简单的格式化处理。
如将关键字的首字母大写,在运算符前后加入空格,删除各部分多余的空格等。
在输入VBA关键字时,可以不区分大小写。
例如输入MsgBox时,无论输入的是Msgbox,msgbox,还是MSGBOX,当输入完该函数的参数并按回车键后,VBE都自动将其变为MsgBox。
为了提高程序的可读性,VBA代码中应加上适当的空格。
当按回车键完成语句的输入后,各关键字之间无论插入多少空格,VBE都将其自动调整为一个空格。
例如输入以下代码(在关键字“Selection”与“Borders”之间插入了多个空格,在“=”与“xlNone”之间无空格):Selection.Borders (xlDigaonalDown).LineStyle =xlNone输入完语句并按回车键后,VBE将其自动格式化以下格式:Selection.Borders(xlDigaonalDown).LineStyle =xlNone在“=”前后各插入一个空格,同时其他关键字之间的空格被自动删除。
注意:不能在关键字的中间加入空格。
6.1.2 复合语句与语句断行一般情况下,要求程序中每个语句占一行。
但在VBA中,也可以把几个语句放在一行中构成复合语句。
各语句之间用冒号(:)分隔,例如:Selection.Font.Bold = True: Selection.Font.Size = 20与以下两行语句功能相同:Selection.Font.Bold = TrueSelection.Font.Size = 20在VBE的代码窗口中,每行VBA代码可包含1023个字符。
Excel VBA常用语句全集
Excel VBA语句集(300句)定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(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 '关闭当前工作簿,workbooks.close只能关闭里面的,而外面的文件不能关掉。
application.workbooks.quit关闭整个EXCEL表格。
(12) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数(13) '返回活动工作薄的名称(14) ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小(16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化工作表(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum”'将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=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=Not ActiveWindow.DisplayGridlines '切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示(28) edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(30) ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2 '将页面设置更改为横向(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=erName ‘将用户名放置在活动工作表的页脚单元格/单元格区域(32) ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select'选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select ‘选定当前工作表的所有单元格(34) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ‘偏移一列Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行(38) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(39) ActiveWindow.RangeSelection.Value=XX '将值XX输入到所选单元格区域中(40) ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(41) Selection.Count '当前选中区域的单元格数(42) GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,””) ‘返回单元格中超级链接的地址并赋值(43) TextColor=Range(“A1”).Font.ColorIndex ‘检查单元格A1的文本颜色并返回颜色索引Range(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(44) cells.count ‘返回当前工作表的单元格数(45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3行,向右4列的单元格(46) Cells.Item(5,”C”) ‘引单元格C5Cells.Item(5,3) ‘引单元格C5(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)或Range(“A1”).Offset(4,5) ‘指定单元格F5(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)Rnage(“B3”).Resize(11,3) ‘创建B3:D13区域(49) Range(“Data”).Resize(,2) ‘将Data区域扩充2列(50) Union(Range(“Data1”),Range(“Data2”)) ‘将Data1和Data2区域连接(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘返回Data1和Data2区域的交叉区域(52) Range(“Data”).Count ‘单元格区域Data中的单元格数Range(“Data”). Columns.Count ‘单元格区域Data中的列数Range(“Data”). Rows.Count ‘单元格区域Data中的行数(53) Selection.Columns.Count ‘当前选中的单元格区域中的列数Selection.Rows.Count ‘当前选中的单元格区域中的行数(54) Selection.Areas.Count ‘选中的单元格区域所包含的区域数(55) edRange.Row ‘获取单元格区域中使用的第一行的行号(56) Rng.Column ‘获取单元格区域Rng左上角单元格所在列编号(57) ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions) ‘在活动工作表中返回所有符合条件格式设置的区域(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生的第3个字段的下拉列表名称(59) Range(“A1:C3”).Name=“computer”‘命名A1:C3区域为computer或Range(“D1:E6”).Name=“Sheet1!book”‘命名局部变量,即Sheet1上区域D1:E6为book或Names(“computer”).Name=“robot”‘将区域computer重命名为robot(60) Names(“book”).Delete ‘删除名称(61) Names.Add Name:=“ContentList”,_RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))”‘动态命名列(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar”‘命名字符串CompanyCar(63) Names.Add Name:=“Total”,RefersTo:=123456 ‘将数字123456命名为Total。
办公软件学习技巧:Excel VBA常用代码100句
Excel VBA常用代码100句(1) Option Explicit 强制对模块内全部变量进行声明(2) Option Base 1 指定数组的第一个下标为1(3) On Error Resume Next 忽视错误连续执行VBA代码,避开消失错误消息(4) On Error GoTo 100 当错误发生时跳转到过程中的某个位置(5) On Error GoTo 0 恢复正常的错误提示(6) Application.DisplayAlerts=False 在程序执行过程中使消失的警告框不显示(7) Application.DisplayAlerts=True 在程序执行过程中恢复显示警告框(8) Application.ScreenUpdating=False 关闭屏幕刷新(9) Application.ScreenUpdating = True 打开屏幕刷新(10) Workbooks.Add() 创建一个新的工作簿(11) Workbooks(“book1.xls”).Activate 激活名为book1的工作簿(12) ThisWorkbook.Save 保存工作簿(13) ThisWorkbook.close 关闭当前工作簿(14) ActiveWorkbook.Sheets.Count 猎取活动工作薄中工作表数(15) 返回活动工作薄的名称(16) ‘返回当前工作簿名称(17) ThisWorkbook.FullName ‘返回当前工作簿路径和名(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19) Rows.Count ‘猎取工作表的行数(注:考虑兼容性)(20) Sheets(Sheet1).Name= “Sum” 将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) 添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) 将当前工作表移至工作表的最终(23) Worksheets(Array(“sheet1”,”sheet2”)).Select 同时选择工作表1和工作表2(24) Sheets(“sheet1”).Delete或Sheets(1).Delete 删除工作表1(25) ActiveShee edRange.FormatConditions.Delete ‘删除当前工作表中全部的条件格式(26) Cells.Hyperlinks.Delete ‘取消当前工作表全部超链接(27) ActiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,等同于快捷键Ctrl+A(28) Cells.Select ‘选定当前工作表的全部单元格(29) Range(“A1”).ClearContents 清除活动工作表上单元格A1中的内容。
Excel常用VBA语句 200条
(23) Worksheets(Array(“sheet1”,”sheet2”)).Select ''同时选择工作表1和工作表2
(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ''删除工作表1
(36) ActiveCell.Offset(1,0).Select ''活动单元格下移一行,同理,可下移一列
(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ''偏移一列
Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ''向上偏移一行
或 Names(“computer”).Name=“robot” ''将区域computer重命名为robot
(60) Names(“book”).Delete ''删除名称
(61) Names.Add Name:=“ContentList”,_
RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))” ''动态命名列
(4) On Error GoTo 0 ''恢复正常的错误提示
(5) Application.DisplayAlerts=False ''在程序执行过程中使出现的警告框不显示
(6) Application.ScreenUpdating=False ''关闭屏幕刷新
(完整word版)VBA经典常用语句400句
VBA经典常用语句400句目录一、定制模块行为 (3)二、工作簿 (3)三、单元格/单元格区域 (5)四、图表 (9)五、窗体 (10)六、事件 (11)七、对象 (12)八、其他 (13)九、工作簿 (13)十、工作表 (14)十一、公式与函数 (17)十二、图表 (17)十三、窗体和控件 (18)十四、对象 (19)十五、Range对象 (23)十六、Collection与object (25)十七、Windows API (25)十八、Application对象 (38)十九、Documents/Document对象 (40)二十、Paragraphs/Paragraph对象 (41)二十一、Sentences对象 (43)二十二、Words对象 (43)二十三、Characters对象 (43)二十四、Sections/Section对象 (43)二十五、Range对象 (44)二十六、其它 (45)一、定制模块行为(1) Option Explicit ’强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text ’字符串不区分大小写Option Base 1 ’指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(5) Application.DisplayAlerts=False ’在程序执行过程中使出现的警告框不显示(6) Application。
ScreenUpdating=False '关闭屏幕刷新Application。
vba 基本语法
vba 基本语法VBA(Visual Basic for Applications)是一种用于编写宏的编程语言,被广泛应用于Microsoft Office套件中的各种应用程序,如Excel、Word和PowerPoint等。
本文将介绍VBA的基本语法和用法。
VBA基本语法包括变量声明、条件语句、循环语句和函数等。
首先,我们需要声明变量,以便在程序中存储和操作数据。
变量可以是整数、浮点数、字符串等不同类型。
例如,可以使用以下语句声明一个整型变量:Dim x As Integer接下来,我们可以使用条件语句来根据特定的条件执行不同的操作。
常见的条件语句有IF语句和SELECT CASE语句。
IF语句用于根据条件执行不同的代码块,如下所示:If x > 0 ThenMsgBox "x大于0"ElseIf x < 0 ThenMsgBox "x小于0"ElseMsgBox "x等于0"End IfSELECT CASE语句用于根据不同的条件执行不同的代码块,如下所示:Select Case xCase Is > 0MsgBox "x大于0"Case Is < 0MsgBox "x小于0"Case ElseMsgBox "x等于0"End Select除了条件语句,循环语句也是VBA中常用的语法结构之一。
循环语句用于重复执行一段代码块,直到满足特定的条件为止。
常见的循环语句有FOR循环和DO WHILE循环。
例如,以下是一个使用FOR循环输出1到10的整数的示例:For i = 1 To 10MsgBox iNext iVBA还提供了丰富的内置函数,用于执行各种常见的操作。
例如,可以使用以下函数来计算两个数的和:sum = WorksheetFunction.Sum(x, y)除了内置函数,我们还可以自定义函数来实现特定的功能。
VBA经典常用语句400句
VBA经典常用语句400句目录一、定制模块行为 (3)二、工作簿 (3)三、单元格/单元格区域 (5)四、图表 (9)五、窗体 (10)六、事件 (12)七、对象 (12)八、其他 (13)九、工作簿 (13)十、工作表 (14)十一、公式与函数 (17)十二、图表 (18)十三、窗体和控件 (18)十四、对象 (20)十五、Range对象 (23)十六、Collection与object (25)十七、Windows API (25)十八、Application对象 (39)十九、Documents/Document对象 (40)二十、Paragraphs/Paragraph对象 (42)二十一、Sentences对象 (43)二十二、Words对象 (43)二十三、Characters对象 (43)二十四、Sections/Section对象 (44)二十五、Range对象 (45)二十六、其它 (46)一、定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(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) '返回活动工作薄的名称(14) ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小(16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化工作表(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum”'将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=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=Not ActiveWindow.DisplayGridlines '切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27)ActiveWindow.DisplayHeadings=NotActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示(28) edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(30) ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2 '将页面设置更改为横向(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=erName ‘将用户名放置在活动工作表的页脚三、单元格/单元格区域(32) ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select'选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select ‘选定当前工作表的所有单元格(34) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1)‘偏移一列Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行(38) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列本示例选定工作表Sheet1 上的当前区域。
vba基础语法
vba基础语法VBA(Visual Basic for Applications)是一种基于Visual Basic开发的宏编程语言,用于在Microsoft Office(如Excel、Word、Access等)应用程序中自动化任务和创建自定义功能。
以下是VBA的基础语法:1. 注释:使用单引号(')在代码行的开头添加注释。
示例:```' 这是一条注释```2. 变量:在程序中声明和使用变量,可以使用以下关键字:Dim、Public、Private、Static。
示例:```Dim num As IntegerDim name As StringDim total As Double```3. 运算符:VBA支持常见的算术运算符(+、-、*、/),关系运算符(>、<、=、<>),逻辑运算符(And、Or、Not)等。
示例:```num = 10 + 5name = "John" & " " & "Doe"If num > 0 And num < 10 Then' 执行某些代码End If```4. 控制流程:使用条件语句(If...Then...Else、Select Case)和循环语句(For...Next、Do...Loop)来控制程序的流程。
示例:```If num > 0 Then' 执行某些代码Else' 执行其他代码End IfSelect Case numCase 1 To 5' 执行某些代码Case 6 To 10' 执行其他代码Case Else' 执行其他代码End SelectFor i = 1 To 10' 执行某些代码Next iDo While num > 0' 执行某些代码Loop```5. 过程和函数:使用Sub关键字定义过程(可以没有返回值),使用Function关键字定义函数(需要返回值)。
VBA语句集100句
VBA语句集100句(第2辑)下面是我在学习VBA过程中积累的一些VBA语句,希望能对大家有所帮助.也可以参见我的博客.VBA语句集(第2辑)*******************************************************定制模块行为(101) Err.Clear …清除程序运行过程中所有的错误*******************************************************工作簿(102) ThisWorkbook.BuiltinDocumentProperties(“Last Save Time”)或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Save Time”) …返回上次保存工作簿的日期和时间(103) ThisWorkbook.BuiltinDocumentProperties("Last Print Date")或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Print Date”) …返回上次打印或预览工作簿的日期和时间(104) Workbooks.Close …关闭所有打开的工作簿(105) ActiveWorkbook.LinkSources(xlExcelLinks)(1) …返回当前工作簿中的第一条链接(106) ActiveWorkbook.CodeNameT hisWorkbook.CodeName …返回工作簿代码的名称(107) ActiveWorkbook.FileFormatThisWorkbook.FileFormat …返回当前工作簿文件格式代码(108) ThisWorkbook.PathActiveWorkbook.Path …返回当前工作簿的路径(注:若工作簿未保存,则为空)(109) ThisWorkbook.ReadOnlyActiveWorkbook.ReadOnly …返回当前工作簿的读/写值(为False)(110) ThisWorkbook.SavedActiveWorkbook.Saved …返回工作簿的存储值(若已保存则为False)(111) Application.Visible = False …隐藏工作簿Application.Visible = True …显示工作簿注:可与用户窗体配合使用,即在打开工作簿时将工作簿隐藏,只显示用户窗体.可设置控制按钮控制工作簿可见*******************************************************工作表(112) ActiveSheet.Columns("B").Insert …在A列右侧插入列,即插入B列ActiveSheet.Columns("E").CutActiveSheet.Columns("B").Insert …以上两句将E列数据移至B列,原B列及以后的数据相应后移ActiveSheet.Columns("B").CutActiveSheet.Columns("E").Insert …以上两句将B列数据移至D列,原C列和D列数据相应左移一列(113) ActiveSheet.Cal culate …计算当前工作表(114) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden …正常隐藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden …隐藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作表ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible …显示被隐藏的工作表(115) ThisWorkbook.Sheets(1).ProtectContents …检查工作表是否受到保护(116) ThisWorkbook.Worksheets.Add Count:=2, _Before:=ThisWorkbook.Worksheets(2)或ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2 …在第二个工作表之前添加两个新的工作表(117) ThisWorkbook.Worksheets(3).Copy …复制一个工作表到新的工作簿(118) ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) …复制第三个工作表到第二个工作表之前(119) ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20 …改变工作表的列宽为20 ThisWorkbook.ActiveSheet.Columns.ColumnWidth = _T hisWorkbook.ActiveSheet.StandardWidth …将工作表的列宽恢复为标准值ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20 …改变工作表列1的宽度为20 (120) ThisWorkbook.ActiveSheet.Rows.RowHeight = 10 …改变工作表的行高为10 ThisWorkbook.ActiveSheet.Rows.RowHeight = _ThisWorkbook.ActiveSheet.St andardHeight …将工作表的行高恢复为标准值ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 …改变工作表的行1的高度值设置为10(121) ThisWorkbook.Worksheets(1).Activate …当前工作簿中的第一个工作表被激活(122) ThisWorkbook.Worksheets("Sheet1").Rows(1).Font.Bold = True …设置工作表She et1中的行1数据为粗体(123) ThisWork book.Worksheets("Sheet1").Rows(1).Hidden = True …将工作表Sheet1中的行1隐藏ActiveCell.EntireRow.Hidden = True …将当前工作表中活动单元格所在的行隐藏注:同样可用于列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA 常用语句汇总1.Excel 连接Access:工程引用前勾选Microsoft DAO 3.6 Object Library2.Excel 与Access建立连接并查询数据:Set conn = CreateObject("adodb.connection")(建立数据库)Set rs = CreateObject("adodb.recordset")(建立)conn.Open "Provider =microsoft.ACE.oledb.12.0; Data Source(驱动) =" & link(连接)SQL = "select * from [Excel 12.0(驱动);hdr=no(无标题);Database=" & ThisWorkbook.FullName & "].[Adjust$k2:m]as a left join[参数]on(a.f1=[参数].[Topcode]) and (a.f2=[参数].[BOM 版本]) and (a.f3=[参数].[BOM 状态])"rs.Open SQL, connSet yy = conn.Execute(SQL)3.定义字典Set d = CreateObject("scripting.dictionary")4.状态栏显示内容Application.StatusBar = "☆☆☆☆程序正在运行,请稍后……☆☆☆☆"(显示内容)Application.StatusBar = ""(还原显示)5.关闭/开启错误提示Application.DisplayAlerts = False(关闭错误提示)Application.DisplayAlerts = True(开启错误提示)6.获取最后一个非空单元格对应的行和列r=Range("a:a").Find(What:="*",After:=[a1],searchorder:=xlByRows,SearchDirection:=xlPrevio us).Row[a:a].Find("*", , xlValues, , , xlPrevious).Rowc=Range("1:1").Find(What:="*",After:=[a1],searchorder:=xlByRows,SearchDirection:=xlPrevio us).Column7.设置单元格边框With Range()(所要设置的区域).Borders(xlEdgeLeft).Weight = xlThin.Borders(xlEdgeLeft).ThemeColor = 1.Borders(xlEdgeLeft).TintAndShade = -0.499984740745262.Borders(xlEdgeTop).Weight = xlThin.Borders(xlEdgeTop).ThemeColor = 1.Borders(xlEdgeTop).TintAndShade = -0.499984740745262.Borders(xlEdgeBottom).Weight = xlThin.Borders(xlEdgeBottom).ThemeColor = 1.Borders(xlEdgeBottom).TintAndShade = -0.499984740745262.Borders(xlEdgeRight).Weight = xlThin.Borders(xlEdgeRight).ThemeColor = 1.Borders(xlEdgeRight).TintAndShade = -0.499984740745262.Borders(xlInsideVertical).Weight = xlThin.Borders(xlInsideVertical).ThemeColor = 1.Borders(xlInsideVertical).TintAndShade = -0.499984740745262.Borders(xlInsideHorizontal).Weight = xlThin.Borders(xlInsideHorizontal).ThemeColor = 1.Borders(xlInsideHorizontal).TintAndShade = -0.499984740745262 End With8.设置单元格格式With Range()(所有设置的区域).Interior.Color = RGB(128, 128, 128)(单元格颜色) = "Arial"(字体).Font.Size = 9(字号).Font.Color = RGB(255, 255, 255)(字体颜色).NumberFormatLocal = "0_ ;[红色]-0 "(数字格式).Merge(合并单元格).HorizontalAlignment = xlCenter(水平居中).VerticalAlignment = xlCenter(垂直居中)End With9.设置单元格有效性With Selection.ValidationOn Error Resume Next(忽略错误语句).Delete(删除原有效性).Add Type:=xlValidateList(序列方式), AlertStyle:=xlValidAlertStop(警告方式), Operator:=xlBetween, Formula1:=”选项A,选项B,选项C”(序列的值)End With10.打开文件fname1 = Application.GetOpenFilename("All Files (*.*),*.*")Workbooks.Open Filename:=fname111.提取文件夹中所有文件名Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseRange("a2:a1048576").ClearContentsOn Error Resume NextDim f As StringDim file() As StringDim i, k, xx = 1: i = 1: k = 1ReDim file(1 To i)file(1) = Cells(1, 3).ValueDo Until i > kf = Dir(file(i), vbDirectory)Do Until f = ""If InStr(f, ".") = 0 Thenk = k + 1ReDim Preserve file(1 To k)file(k) = file(i) & f & "\"End Iff = DirLoopi = i + 1LoopFor i = 1 To kf = Dir(file(i) & "*.*")Do Until f = ""Range("a" & x + 1) = fRange("a" & x).Hyperlinks.Add Anchor:=Range("a" & x), Address:= _'file(i) & f, TextToDisplay:=f(设置超链接)x = x + 1f = DirLoopNextApplication.ScreenUpdating = TrueEnd Sub12.打印设置With ActiveSheet.PageSetup.PrintTitleRows = "" '工作表打印标题:顶端标题行(R).PrintTitleColumns = "" '工作表打印标题:左端标题列(C) End WithActiveSheet.PageSetup.PrintArea = "" '工作表打印区域(A)With ActiveSheet.PageSetup.LeftHeader = "" '自定义页眉:左(L).CenterHeader = "" '页眉/自定义页眉:中(C).RightHeader = "" '自定义页眉:右(R).LeftFooter = "" '自定义页脚:左(L).CenterFooter = "第&P页/共&N页" '页脚/自定义页脚:中(C).RightFooter = "" '自定义页脚:右(R).LeftMargin = Application.InchesToPoints(0.75) '页边距:左(L)_1.9厘米.RightMargin = Application.InchesToPoints(0.75) '页边距:右(R)_1.9厘米.TopMargin = Application.InchesToPoints(1) '页边距:上(T)_2.5厘米.BottomMargin = Application.InchesToPoints(1) '页边距:下(B)_2.5厘米.HeaderMargin = Application.InchesToPoints(0.5) '页边距:页眉(A)_1.3厘米.FooterMargin = Application.InchesToPoints(0.5) '页边距:页脚(F)_1.3厘米.PrintHeadings = False '工作表打印:行号列标(L).PrintGridlines = False '工作表打印:网格线(G).PrintComments = xlPrintNoComments '工作表打印批注(M):无/(工作表末尾) xlPrintSheetEnd/(如同工作表中的显示)xlPrintIace.CenterHorizontally = False '页边距居中方式:水平(Z) .CenterVertically = True '页边距居中方式:垂直(V).Orientation = xlLandscape '页面方向:纵向(T) xlPortrait/ 横向(L)xlLandscape.Draft = False '工作表打印:按草稿方式(Q).PaperSize = xlPaperA4 '页面纸张大小(Z):A4.FirstPageNumber = xlAutomatic '页面起始页码:自动.Order = xlDownThenOver '工作表打印顺序:先列后行(D)/先行后列(V) xlOverThenDown.BlackAndWhite = False '工作表打印:单色打印(B).Zoom = 100 '页面缩放比例:100% 若选择页面缩放比例,则下面两项没有.Zoom = False '页面缩放比例:未选择若选择调整页面则此项必为False,且与下面两项一起出现.FitToPagesWide = 1 '页面缩放:调整为1页高.FitToPagesTall = 1 '页面缩放:调整为1页宽.PrintErrors = xlPrintErrorsDisplayed '工作表打印错误单元格打印为(E):显示值/<空白> xlPrintErrorsBlank/-- xlPrintErrorsDash/#N/A xlPrintErrorsNAEnd With13.返回第一个大于0的列号={small(if(D2:AN2>0,column(D2:AN2)),1)}(Excel 函数)14. 返回最后一个大于0的列号={large(if(D2:AN2>0,column(D2:AN2)),1)} (Excel 函数)。