最常用的 Excel VBA语法200句
ExcelExcel之VBA编程常用语句300句
ExcelExcel之VBA编程常用语句300句(257) Range("A1:B2").Item(2, 3)或Range("A1:B2")(2, 3) ‘引用单元格C2的数据Range("A1:B2")(3) ‘引用单元格A2(258) ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘设置字体加粗ActiveSheet.Cells(1, 1).Font.Size = 24 ‘设置字体大小为24磅ActiveSheet.Cells(1, 1).Font.ColorIndex = 3 ‘设置字体颜色为红色ActiveSheet.Cells(1, 1).Font.Italic = TRUE ‘设置字体为斜体ActiveSheet.Cells(1, 1) = "Times New Roman" ‘设置字体类型ActiveSheet.Cells(1, 1).Interior.Col orIndex = 3 ‘将单元格的背景色设置为红色(259) ActiveSheet.Range("C2:E6").AutoFormat Format:=xlRangeAutoFormatColor3 '将当前工作表中单元格区域C2至E6格式自动调整为彩色3格式(260) Cells.SpecialCells(xlCellTypeLastCell) ‘选中当前工作表中的最后一个单元格(261) ActiveCell.CurrentArray.Select '选定包含活动单元格的整个数组单元格区域.假定该单元格在数据单元格区域中(262) ActiveCell.NumberFormatLocal = "0.000; [红色] 0.000" '将当前单元格数字格式设置为带3位小数,若为负数则显示为红色(263) IsEmpty (ActiveCell.Value) '判断活动单元格中是否有值(264) ActiveCell.Value = LTrim(ActiveCell.Value) '删除字符串前面的空白字符(265) Len(ActiveCell.Value) '获取活动单元格中字符串的个数(266) ActiveCell.Value = UCase(ActiveCell.Value) '将当前单元格中的字符转换成大写(267) ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) '将活动单元格中的字符串转换成小写(268) ActiveSheet.Range("C1").AddComment '在当前工作表的单元格C1中添加批注(269) Weekday(Date) '获取今天的星期,以数值表示,1-7分别对应星期日至星期六(270) ActiveSheet.Range("A1").AutoFill Range(Cells(1, 1), Cells(10, 1)) '将单元格A1的数值填充到单元格A1至A10区域中(271) DatePart("y", Date) '获取今天在全年中的天数(272) ActiveCell.Value = DateAdd("yyyy", 2, Date) '获取两年后的今天的日期(273) MsgBox WeekdayName(Weekday(Date)) '获取今天的星期数(274) ActiveCell.Value = Year(Date) '在当前单元格中输入今年的年份数ActiveCell.Value = Month(Date) '在当前单元格中输入今天所在的月份数ActiveCell.Value = Day(Date) '在当前单元格中输入今天的日期数(275) ActiveCell.Value = MonthName(1) '在当前单元格中显示月份的名称,本句为显示"一月"(276) ActiveCell.Value = Hour(Time) '在当前单元格中显示现在时间的小时数ActiveCell.Value = Minute(Time) '在当前单元格中显示现在时间的分钟数ActiveCell.Value = Second(Time) '在当前单元格中显示现在时间的秒数(277) ActiveSheet.Shapes(1).Delete '删除当前工作表中的第一个形状(278) ActiveSheet.Shapes.Count '获取当前工作表中形状的数量(279) ActiveSheet.Shapes(1).TextEffect.ToggleVerticalText '改变当前工作表中第一个艺术字的方向(280) ActiveSheet.Shapes(1).TextEffect.FontItalic = True '将当前工作表中第一个艺术字的字体设置为斜体(281) ActiveSheet.Shapes.AddTextEffect(msoTextEffect21, "三峡", _"Arial Black", 22#, msoFalse, msoFalse, 66#, 80).Select '在当前工作表中创建一个名为"三峡"的艺术字并对其进行格式设置和选中(282) ActiveSheet.Shapes.AddLine(BeginX:=10, BeginY:=10, EndX:=250, _EndY:=100).Select '在当前工作表中以(10,10)为起点(250,100)为终点画一条直线并选中(283)ActiveSheet.Shapes.AddShape(Type:=msoShapeRightTriangle, _ Left:=70, Top:=40, Width:=130, Height:=72).Select '在当前工作表中画一个左上角在(70,40),宽为130高为72的三角形并选中(284)ActiveSheet.Shapes.AddShape(Type:=msoShapeRectangle, _ Left:=70, Top:=40, Width:=130, Height:=72).Select '在当前工作表中画一个以点(70,40)为起点,宽130高72的矩形并选中(285) ActiveSheet.Shapes.AddShape(Type:=msoShapeOval, _ Left:=70, Top:=40, Width:=130, Height:=72).Select '在当前工作表中画一个左上角在(70,40),宽为130高为72的椭圆(286) ActiveSheet.Shapes(1).Line.ForeColor.RGB = RGB(0, 0, 255) '将当前工作表中第一个形状的线条颜色变为蓝色(287) ActiveSheet.Shapes(2).Fill.ForeColor.RGB = RGB(255, 0, 0) '将当前工作表中第2个形状的前景色设置为红色(288) ActiveSheet.Shapes(1).Rotation = 20 '将当前工作表中的第1个形状旋转20度(289) Selection.ShapeRange.Flip msoFlipHorizontal '将当前选中的形状水平翻转Selection.ShapeRange.Flip msoFlipVertical '将当前选中的形状垂直翻转(290) Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1 '将所选取的形状设置为第1种立体样式(291) ActiveSheet.Shapes(1).ThreeD.Depth = 20 '将当前工作表中第一个立体形状的深度设置为20(292) ActiveSheet.Shapes(1).ThreeD.ExtrusionColor.RGB = RGB(0, 0, 255) '将当前工作表中第1个立体形状的进深部分的颜色设为蓝色(293) ActiveSheet.Shapes(1).ThreeD.RotationX = 60 '将当前工作表中的第1个立体形状沿X轴旋转60度ActiveSheet.Shapes(1).ThreeD.RotationY = 60 '将当前工作表中的第1个立体形状沿Y轴旋转60度(294) Selection.ShapeRange.ThreeD.Visible = msoFalse '将所选择的立体形状转换为平面形状(295)Selection.ShapeRange.ConnectorFormat.BeginDisconnect '在形状中让指定的连接符起点脱离原来所连接的形状(296) ActiveSheet.Shapes(1).PickUp '复制当前工作表中形状1的格式(297)ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 260, 160, 180, 30). TextFrame.Characters.T ext = "" '在工作簿中新建一个文本框并输入内容(298)ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 20, 80, 100, 200). TextFrame.Characters.Text = "" '在当前工作表中建立一个水平文本框并输入内容(299) ActiveSheet.Shapes.AddPicture "d:\sx.jpg", True, True, 60, 20, 400, 300 '在当前工作表中插入一张d盘中名为sx的图片(300) ActiveChart.ApplyCustomType xl3DArea '将当前图表类型改为三维面积图。
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 显示保存对话框。
excel vba string 语句
在Excel VBA(Visual Basic for Applications)中,字符串是一种常见的数据类型,用于表示文本。
你可以使用各种VBA函数和方法来操作和处理字符串。
以下是一些基本的VBA字符串语句和操作的示例:1、声明和赋值字符串变量:vbaDim myString As StringmyString = "Hello, World!"2、字符串连接:vbaDim firstName As StringDim lastName As StringfirstName = "John"lastName = "Doe"Dim fullName As StringfullName = firstName & " " & lastName ' 结果是"John Doe"3、字符串长度:vbaDim strLength As IntegerstrLength = Len(myString) ' 结果是134、字符串查找:vbaDim foundPosition As IntegerfoundPosition = InStr(myString, "World") ' 结果是8,因为"World"是从第8个字符开始出现的5、字符串替换:vbaDim newString As StringnewString = Replace(myString, "World", "Excel") ' 结果是"Hello, Excel!"6、字符串分割:vbaDim splitArray() As StringsplitArray = Split(myString, ", ") ' 结果是一个数组,包含"Hello" 和"World!"7、字符串转换为大写或小写:vbaDim upperString As StringDim lowerString As StringupperString = UCase(myString) ' 结果是"HELLO, WORLD!"lowerString = LCase(myString) ' 结果是"hello, world!"8、去除字符串前后的空格:vbaDim trimmedString As StringtrimmedString = Trim(myString) ' 如果myString前后有空格,则去除它们9、判断字符串是否以特定子字符串开始或结束:vbaDim startsWithHello As BooleanDim endsWithWorld As BooleanstartsWithHello = Left(myString, 5) = "Hello" ' 结果是TrueendsWithWorld = Right(myString, 5) = "World" ' 结果是True这些是VBA中处理字符串的一些基本语句和操作。
vba编程基础语法
vba编程基础语法VBA(Visual Basic for Applications)是一种宏编程语言,用于在Microsoft Office应用程序中自动化和自定义操作。
以下是VBA编程的基础语法:1. 注释:使用单引号(')在代码行的开头添加注释。
示例:'这是一个注释2. 变量声明和赋值:- 使用关键字Dim声明变量类型。
示例:Dim age As Integer- 使用等号(=)为变量赋值。
示例:age = 25- 也可以在声明时同时赋值:示例:Dim age As Integer = 253. 语句和代码块:- 使用关键字Sub和End Sub定义子过程(Sub)或函数(Function)。
示例:Sub HelloWorld()MsgBox "Hello, World!"End Sub- 使用关键字If、Then、ElseIf和End If进行条件判断。
示例:If age > 18 ThenMsgBox "You are an adult."ElseIf age > 12 ThenMsgBox "You are a teenager."ElseMsgBox "You are a child."End If- 使用关键字For、To、Step、Next进行循环。
示例:For i = 1 To 10 Step 2MsgBox iNext i4. 输入和输出:- 使用MsgBox函数弹出消息框。
示例:MsgBox "Hello, World!"- 使用InputBox函数弹出输入对话框。
示例:name = InputBox("Please enter your name")5. 对象和方法:- 使用关键字Set创建对象变量并分配对象。
示例:Set rng = Sheets("Sheet1").Range("A1:B10")- 使用点操作符(.)调用对象的方法。
Excel VBA语句集(300句)
Excel VBA语句集定制模块行为(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=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) Ra nge(“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。
网优257个Excel宏常用语句
257个Excel宏常用语句1、打开全部隐藏工作表 (12)2、循环宏 (13)3、录制宏时调用“停止录制”工具栏 (13)4、高级筛选5列不重复数据至指定表 (13)5、双击单元执行宏(工作表代码) (13)6、双击指定区域单元执行宏(工作表代码) (14)7、进入单元执行宏(工作表代码) (14)8、进入指定区域单元执行宏(工作表代码) (15)9、在多个宏中依次循环执行一个(控件按钮代码) (15)10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (15)11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (16)12、根据A1单元文本隐藏/显示按钮(控件按钮代码) (16)13、当前单元返回按钮名称(控件按钮代码) (16)14、当前单元内容返回到按钮名称(控件按钮代码) (17)15、奇偶页分别打印 (17)16、自动打印多工作表第一页 (17)17、查找A列文本循环插入分页符 (18)18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小 (18)19、返回光标所在行数 (19)20、在A1返回当前选中单元格数量 (19)21、返回当前工作簿中工作表数量 (19)22、返回光标选择区域的行数和列数 (19)23、工作表中包含数据的最大行数 (19)24、返回A列数据的最大行数 (19)25、将所选区域文本插入新建文本框 (20)26、批量插入地址批注 (20)27、批量插入统一批注 (20)28、以A1单元内容批量插入批注 (21)29、不连续区域插入当前文件名和表名及地址 (21)30、不连续区域录入当前单元地址 (21)31、连续区域录入当前单元地址 (21)32、返回当前单元地址 (22)33、不连续区域录入当前日期 (22)34、不连续区域录入当前数字日期 (22)35、不连续区域录入当前日期和时间 (22)36、不连续区域录入对勾 (22)37、不连续区域录入当前文件名 (22)38、不连续区域添加文本 (23)39、不连续区域插入文本 (23)40、从指定位置向下同时录入多单元指定内容 (23)41、按aa工作表A列的内容排列工作表标签顺序 (23)42、以A1单元文本作表名插入工作表 (24)43、删除全部未选定工作表 (24)44、工作表标签排序 (24)45、定义指定工作表标签颜色 (25)46、在目录表建立本工作簿中各表链接目录 (25)47、建立工作表文本目录 (26)48、查另一文件的全部表名 (26)49、当前单元录入计算机名 (26)50、当前单元录入计算机用户名 (27)51、解除全部工作表保护 (27)52、为指定工作表加指定密码保护表 (27)53、在有密码的工作表执行代码 (27)54、执行前需要验证密码的宏(控件按钮代码) (27)55、执行前需要验证密码的宏() (28)56、拷贝A1公式和格式到A2 (28)57、复制单元数值 (28)58、插入数值条件格式 (28)59、插入透明批注 (29)60、添加文本 (29)61、光标定位到指定工作表A列最后数据行下一单元 (29)62、定位选定单元格式相同的全部单元格 (29)63、按当前单元文本定位 (30)64、按固定文本定位 (31)65、删除包含固定文本单元的行或列 (31)66、定位数据及区域以上的空值 (31)67、右侧单元自动加5(工作表代码) (32)68、当前单元加2 (32)69、A列等于A列减B列 (32)70、用于光标选定多区域跳转指定单元(工作表代码) (32)71、将A1单元录入的数据累加到B1单元(工作表代码) (32)72、在指定颜色区域选择单元时添加/取消"√"(工作表代码) (33)73、在指定区域选择单元时添加/取消"√"(工作表代码) (33)74、双击指定单元,循环录入文本(工作表代码) (33)75、双击指定单元,循环录入文本(工作表代码) (34)76、单元区域引用(工作表代码) (34)77、在指定区域选择单元时数值加1(工作表代码) (34)78、混合文本的编号 (34)79、指定区域单元双击数据累加(工作表代码) (34)80、选择单元区域触发事件(工作表代码) (35)81、当修改指定单元内容时自动执行宏(工作表代码) (35)82、被指定单元内容限制执行宏 (35)83、双击单元隐藏该行(工作表代码) (35)84、高亮显示行(工作表代码) (35)85、高亮显示行和列(工作表代码) (35)86、为指定工作表设置滚动范围(工作簿代码) (36)87、在指定单元记录打印和预览次数(工作簿代码) (36)88、自动数字金额转大写(工作表代码) (36)89、将全部工作表的A1单元作为单击按钮(工作簿代码) (36)90、闹钟——到指定时间执行宏(工作簿代码) (36)91、改变Excel界面标题的宏(工作簿代码) (37)92、在指定工作表的指定单元返回光标当前多选区地址(工作簿代码) (37)93、B列录入数据时在A列返回记录时间(工作表代码) (37)94、当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码) (37)95、指定单元显示光标位置内容(工作表代码) (38)96、每编辑一个单元保存文件 (38)97、指定允许编辑区域 (38)98、解除允许编辑区域限制 (38)99、删除指定行 (38)100、删除A列为指定内容的行 (38)101、删除A列非数字单元行 (39)102、有条件删除当前行 (39)103、选择下一行 (39)104、选择第5行开始所有数据行 (39)105、选择光标或选区所在行 (40)106、选择光标或选区所在列 (40)107、光标定位到名称指定位置 (40)108、选择名称定义的数据区 (40)109、选择到指定列的最后行 (40)110、将Sheet1的A列的非空值写到Sheet2的A列 (40)111、将名称1的数据写到名称2 (41)112、单元反选 (41)113、调整选中对象中的文字 (41)114、去除指定范围内的对象 (41)115、更新透视表数据项 (42)116、将全部工作表名称写到A列 (42)117、为当前选定的多单元插入指定名称 (42)118、删除全部名称 (43)119、以指定区域为表目录补充新表 (43)120、按A列数据批量修改表名称 (43)121、按A列数据批量创建新表(控件按钮代码) (44)122、清除剪贴板 (44)123、批量清除软回车 (44)124、判断指定文件是否已经打开 (44)125、当前文件另存到指定目录 (45)126、另存指定文件名 (45)127、以本工作表名称另存文件到当前目录 (45)128、将本工作表单独另存文件到Excel当前默认目录 (45)129、以活动工作表名称另存文件到Excel当前默认目录 (45)130、另存所有工作表为工作簿 (45)131、以指定单元内容为新文件名另存文件 (46)132、以当前日期为新文件名另存文件 (46)133、以当前日期和时间为新文件名另存文件 (46)134、另存本表为TXT文件 (46)135、引用指定位置单元内容为部分文件名另存文件 (47)136、将A列数据排序到D列 (47)137、将指定范围的数据排列到D列 (47)138、光标所在行上移一行 (48)139、加数据有效限制 (48)140、取消数据有效限制 (48)141、重排窗口 (49)142、按当前单元文本选择打开指定文件单元 (49)143、回车光标向右 (49)144、回车光标向下 (49)145、保护工作表时取消选定锁定单元 (50)146、保存并退出Excel (50)147、隐藏/显示指定列空值行 (50)148、深度隐藏指定工作表 (50)149、隐藏指定工作表 (50)150、隐藏当前工作表 (50)151、返回当前工作表名称 (51)152、获取上一次所进入工作簿的工作表名称 (51)153、按光标选定颜色隐藏本列其他颜色行 (51)154、打开工作簿自动隐藏录入表以外的其他表 (51)155、除最左边工作表外深度隐藏所有表 (52)156、关闭文件时自动隐藏指定工作表(ThisWorkbook) (52)157、打开文件时提示指定工作表是保护状态(ThisWorkbook) (52)158、插入10行 (52)159、全选固定范围内小于0的单元 (52)160、全选选定范围内小于0的单元 (53)161、固定区域单元分类变色 (53)162、A列半角内容变红 (54)163、单元格录入数据时运行宏的代码 (54)164、根据B列最后数据快速合并A列单元格的控件代码 (54)165、在F1单元显示光标位置批注内容的代码 (55)166、显示光标所在单元的批注的代码 (55)167、使单元内容保持不变的工作表代码 (55)168、有条件执行宏 (55)169、有条件执行不同的宏 (55)170、提示确定或取消执行宏 (56)171、提示开始和结束 (56)172、拷贝指定表不相邻多列数据到新位置 (56)173、选择2至4行 (56)174、在当前选区有条件替换数值为文本 (56)175、自动筛选全部显示指定列 (57)176、自动筛选第2列值为A的行 (57)177、取消自动筛选() (57)178、全部显示指定表的自动筛选 (57)179、强行合并单元 (57)180、设置单元区域格式 (58)181、在所有工作表的A1单元返回顺序号 (58)182、根据A1单元内容返回C1数值 (58)183、根据A1内容选择执行宏 (58)184、删除A列空行 (59)185、在A列产生不重复随机数 (59)186、将A列数据随机排列到F列 (59)187、取消选定区域的公式只保留值(假空转真空) (60)188、处理导入的显示为科学计数法样式的身份证号 (60)189、返回指定单元的行高和列宽 (60)190、指定行高和列宽 (60)191、指定单元的行高和列宽与A1单元相同 (61)191、填公式 (61)192、建立当前工作表的副本为001表 (61)193、在第一个表前插入多工作表 (61)194、清除A列再插入序号 (61)195、反方向文本(自定义函数) (62)196、指定选择单元区域弹出消息 (62)197、将B列数据添加超链接到K列 (62)198、删除B列数据的超链接 (62)199、分离临时表A列数据的文本和超链接并整理到数据库表 (62)200、分离临时表A列数据的文本和超链接并会同其他数据整理到数据库表 (63)201、返回A列最后一个非空单元行号 (63)202、返回表中第一个非空单元地址(行搜索) (64)203、返回表中各非空单元区域地址(行搜索) (64)204、返回第一个数值行号 (64)205、返回第1行最右边非空单元的列号 (64)206、返回连续数值单元的数量 (64)207、统计指定范围和内容的单元数量 (64)208、统计不同颜色的数字的和(自定义函数) (65)209、返回非空单元数量 (65)210、返回A列非空单元数量 (65)211、返回圆周率π (65)212、定义指定单元内容为页眉/页脚 (65)213、提示并全部清除当前选择区域 (66)214、全部清除当前选择区域 (66)215、清除指定区域数值 (66)216、对指定工作表执行取消隐藏》打印》隐藏工作表 (66)217、打开文件时执行指定宏(工作簿代码) (66)218、关闭文件时执行指定宏(工作簿代码) (67)219、弹出提示A1单元内容 (67)220、延时15秒执行重排窗口宏 (67)221、撤消工作表保护并取消密码 (67)222、重算指定表 (67)223、将第5行移到窗口的最上面 (67)224、对第一张工作表的指定区域进行排序 (68)225、显示指定工作表的打印预览 (68)226、用单元格A1的内容作为文件名另存当前工作簿 (68)227、[禁用/启用]保存和另存的代码 (68)228、在A和B列返回当前选区的名称和公式 (68)229、朗读朗读A列,按ESC键中止 (68)230、朗读固定语句,请按ESC键终止 (69)231、在M和N列的14行以下选择单元时显示调用日历控件(工作表代码) (69)232、添加自定义序列 (70)233、弹出打印对话框 (70)234、返回总页码 (70)235、合并各工作表内容 (70)236、合并指定目录中所有文件中相同格式工作表的数据 (71)237、隐藏指定工作表的指定列 (72)238、把a列不重复值取到e列 (72)239、当前选区的行列数 (72)240、单元格录入1位字符就跳转(工作表代码) (73)241、当指定日期(每月10日)打开文件执行宏 (73)242、提示并清空单元区域 (73)243、返回光标所在行号 (73)244、按照当前行A列的图片名称插入图片到H列 (74)245、当前行下插入1行 (74)246、取消指定行或列的隐藏 (74)247、复制单元格所在行 (75)248、复制单元格所在列 (75)249、新建一个工作表 (75)250、新建一个工作簿 (75)251、选择多表为工作组 (75)252、在当前工作组各表中分别执行指定宏 (76)253、复制当前工作簿的报表到临时工作簿 (77)254、删除指定文件 (77)255、合并A1至C1的内容写到D15单元的批注中 (78)256、自动重算 (78)257、手动重算 (78)1、打开全部隐藏工作表Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub2、循环宏Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" ThenExit For'如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For'如果某列出现"完成"内容则退出循环Next iEnd Sub3、录制宏时调用“停止录制”工具栏Sub 录制宏时调用停止录制工具栏()mandBars("Stop Recording").Visible = TrueEnd Sub4、高级筛选5列不重复数据至指定表Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _ "A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending,Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub5、双击单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" ThenExit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub6、双击指定区域单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub7、进入单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字()Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub8、进入指定区域单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call 打开隐藏表End Sub9、在多个宏中依次循环执行一个(控件按钮代码)Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub12、根据A1单元文本隐藏/显示按钮(控件按钮代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub13、当前单元返回按钮名称(控件按钮代码)Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub14、当前单元内容返回到按钮名称(控件按钮代码)Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub15、奇偶页分别打印Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub16、自动打印多工作表第一页Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub17、查找A列文本循环插入分页符Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页") 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小() Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then Pic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub19、返回光标所在行数Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub20、在A1返回当前选中单元格数量Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub21、返回当前工作簿中工作表数量Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub22、返回光标选择区域的行数和列数Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub23、工作表中包含数据的最大行数Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub24、返回A列数据的最大行数Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub25、将所选区域文本插入新建文本框Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left + ActiveCell.Width, ActiveCell.Top + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub26、批量插入地址批注Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.Address NextEnd IfEnd Sub27、批量插入统一批注Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub28、以A1单元内容批量插入批注Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub29、不连续区域插入当前文件名和表名及地址Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + + "!" + mycell.AddressNextEnd Sub30、不连续区域录入当前单元地址Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub31、连续区域录入当前单元地址Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub32、返回当前单元地址Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub33、不连续区域录入当前日期Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub34、不连续区域录入当前数字日期Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub35、不连续区域录入当前日期和时间Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss") End Sub36、不连续区域录入对勾Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub37、不连续区域录入当前文件名Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub38、不连续区域添加文本Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub39、不连续区域插入文本Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub40、从指定位置向下同时录入多单元指定内容Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr) End Sub41、按aa工作表A列的内容排列工作表标签顺序Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub42、以A1单元文本作表名插入工作表Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub43、删除全部未选定工作表Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub44、工作表标签排序Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选'是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选'否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub45、定义指定工作表标签颜色Sub 定义指定工作表标签颜色()Sheets("Sheet1").Tab.ColorIndex = 46End Sub46、在目录表建立本工作簿中各表链接目录Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1", ScreenTip:=Sheets(i).NameEnd IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub47、建立工作表文本目录Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub48、查另一文件的全部表名Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub49、当前单元录入计算机名Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub50、当前单元录入计算机用户名Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub51、解除全部工作表保护Sub 解除全部工作表保护()Dim n As IntegerFor n = 1 To Sheets.CountSheets(n).UnprotectNext nEnd Sub52、为指定工作表加指定密码保护表Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub53、在有密码的工作表执行代码Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123”打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub54、执行前需要验证密码的宏(控件按钮代码)Private Sub CommandButton1_Click()If InputBox("请输入密码:") <> "123" Then '密码是123MsgBox "密码错误,按确定退出!", 64, "提示"Exit SubEnd IfCells(1, 1) = 10End Sub55、执行前需要验证密码的宏()Sub 执行前需要验证密码的宏()If InputBox("请输入您的使用权限:", "系统提示") = 123 Then重排窗口'要执行的宏代码或宏名称ElseMsgBox "对不起,您没有使用该宏的权限,按确定键后退出!"End IfEnd Sub56、拷贝A1公式和格式到A2Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub57、复制单元数值Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub58、插入数值条件格式Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub59、插入透明批注Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub60、添加文本Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub61、光标定位到指定工作表A列最后数据行下一单元Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub62、定位选定单元格式相同的全部单元格Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="", searchformat:=True)If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub63、按当前单元文本定位Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub64、按固定文本定位Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub65、删除包含固定文本单元的行或列Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is Nothing End Sub66、定位数据及区域以上的空值Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub67、右侧单元自动加5(工作表代码)Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub68、当前单元加2Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub69、A列等于A列减B列Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub70、用于光标选定多区域跳转指定单元(工作表代码)Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub71、将A1单元录入的数据累加到B1单元(工作表代码)Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub72、在指定颜色区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "") NextEnd Sub73、在指定区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing Then For Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub74、双击指定单元,循环录入文本(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub75、双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub76、单元区域引用(工作表代码)Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub77、在指定区域选择单元时数值加1(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub78、混合文本的编号Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3, 100)) + 1) End Sub79、指定区域单元双击数据累加(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect([A1:Y100], Target) Is Nothing Thenoldvalue = Val(Target.Value)inputvalue = InputBox("请输入数量,按ENTER键确认!", "数值累加器")Target.Value = oldvalue + inputvalueEnd IfEnd Sub。
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 常用条件语句
excel vba 常用条件语句Excel VBA 是一种用于编写宏和自定义函数的编程语言,可以在Excel 中实现自动化操作和数据处理。
条件语句是Excel VBA 中非常常用的一种语句类型,用于根据不同的条件执行不同的代码。
下面列举了十个常用的 Excel VBA 条件语句。
1. If语句If语句是Excel VBA 中最基本的条件语句,用于根据条件来执行不同的代码块。
它的语法如下:```If 条件 Then代码块ElseIf 条件 Then代码块Else代码块End If```2. Select Case语句Select Case语句是用于根据不同的条件执行不同的代码块的语句。
它的语法如下:```Select Case 表达式Case 条件1代码块1Case 条件2代码块2Case Else代码块3End Select```3. Do While循环Do While循环用于在满足条件的情况下重复执行一段代码块。
它的语法如下:```Do While 条件代码块Loop```4. Do Until循环Do Until循环与Do While循环类似,只是条件的判断相反。
它的语法如下:```Do Until 条件代码块Loop```5. For循环For循环用于在指定的次数内重复执行一段代码块。
它的语法如下:```For 变量 = 起始值 To 结束值 Step 步长代码块Next 变量```6. For Each循环For Each循环用于遍历集合中的每个元素,并执行相应的代码块。
它的语法如下:```For Each 变量 In 集合代码块Next 变量```7. Exit语句Exit语句用于提前退出循环或子程序。
它可以与条件语句结合使用,根据特定的条件提前退出循环或子程序。
它的语法如下:```Exit DoExit ForExit Sub```8. GoTo语句GoTo语句用于跳转到指定的标签或行号。
必须收藏!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。
257个Excel宏常用语句
257个Excel宏常用语句257个Excel宏常用语句1、打开全部隐藏工作表 (7)2、循环宏 (7)3、录制宏时调用“停止录制”工具栏 (7)4、高级筛选5列不重复数据至指定表 (7)5、双击单元执行宏(工作表代码) (8)6、双击指定区域单元执行宏(工作表代码) (8)7、进入单元执行宏(工作表代码) (8)8、进入指定区域单元执行宏(工作表代码) (9)9、在多个宏中依次循环执行一个(控件按钮代码) (9)10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (9)11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (10)12、根据A1单元文本隐藏/显示按钮(控件按钮代码) (10)13、当前单元返回按钮名称(控件按钮代码) (10)14、当前单元内容返回到按钮名称(控件按钮代码) (11)15、奇偶页分别打印 (11)16、自动打印多工作表第一页 (11)17、查找A列文本循环插入分页符 (12)18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小 (12)19、返回光标所在行数 (13)20、在A1返回当前选中单元格数量 (13)21、返回当前工作簿中工作表数量 (13)22、返回光标选择区域的行数和列数 (13)23、工作表中包含数据的最大行数 (13)24、返回A列数据的最大行数 (13)25、将所选区域文本插入新建文本框 (14)26、批量插入地址批注 (14)27、批量插入统一批注 (14)28、以A1单元内容批量插入批注 (15)29、不连续区域插入当前文件名和表名及地址 (15)30、不连续区域录入当前单元地址 (15)31、连续区域录入当前单元地址 (15)32、返回当前单元地址 (16)33、不连续区域录入当前日期 (16)34、不连续区域录入当前数字日期 (16)35、不连续区域录入当前日期和时间 (16)36、不连续区域录入对勾 (16)37、不连续区域录入当前文件名 (16)38、不连续区域添加文本 (16)39、不连续区域插入文本 (17)40、从指定位置向下同时录入多单元指定内容 (17)41、按aa工作表A列的内容排列工作表标签顺序 (17)42、以A1单元文本作表名插入工作表 (17)43、删除全部未选定工作表 (18)44、工作表标签排序 (18)45、定义指定工作表标签颜色 (19)46、在目录表建立本工作簿中各表链接目录 (19)47、建立工作表文本目录 (20)48、查另一文件的全部表名 (20)49、当前单元录入计算机名 (20)50、当前单元录入计算机用户名 (20)51、解除全部工作表保护 (21)52、为指定工作表加指定密码保护表 (21)53、在有密码的工作表执行代码 (21)54、执行前需要验证密码的宏(控件按钮代码) (21)55、执行前需要验证密码的宏() (21)56、拷贝A1公式和格式到A2 (22)57、复制单元数值 (22)58、插入数值条件格式 (22)59、插入透明批注 (22)60、添加文本 (23)61、光标定位到指定工作表A列最后数据行下一单元 (23)62、定位选定单元格式相同的全部单元格 (23)63、按当前单元文本定位 (24)64、按固定文本定位 (24)65、删除包含固定文本单元的行或列 (25)66、定位数据及区域以上的空值 (25)67、右侧单元自动加5(工作表代码) (25)68、当前单元加2 (25)69、A列等于A列减B列 (26)70、用于光标选定多区域跳转指定单元(工作表代码) (26)71、将A1单元录入的数据累加到B1单元(工作表代码) (26)72、在指定颜色区域选择单元时添加/取消"√"(工作表代码)(26)73、在指定区域选择单元时添加/取消"√"(工作表代码) (27)74、双击指定单元,循环录入文本(工作表代码) (27)75、双击指定单元,循环录入文本(工作表代码) (27)76、单元区域引用(工作表代码) (27)77、在指定区域选择单元时数值加1(工作表代码) (28)78、混合文本的编号 (28)79、指定区域单元双击数据累加(工作表代码) (28)80、选择单元区域触发事件(工作表代码) (28)81、当修改指定单元内容时自动执行宏(工作表代码) (28)82、被指定单元内容限制执行宏 (29)83、双击单元隐藏该行(工作表代码) (29)84、高亮显示行(工作表代码) (29)85、高亮显示行和列(工作表代码) (29)86、为指定工作表设置滚动范围(工作簿代码) (29)87、在指定单元记录打印和预览次数(工作簿代码) (29)88、自动数字金额转大写(工作表代码) (30)89、将全部工作表的A1单元作为单击按钮(工作簿代码) (30)90、闹钟——到指定时间执行宏(工作簿代码) (30)91、改变Excel界面标题的宏(工作簿代码) (30)92、在指定工作表的指定单元返回光标当前多选区地址(工作簿代码) (30)93、B列录入数据时在A列返回记录时间(工作表代码) (31)94、当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码) (31)95、指定单元显示光标位置内容(工作表代码) (31)96、每编辑一个单元保存文件 (31)97、指定允许编辑区域 (32)98、解除允许编辑区域限制 (32)99、删除指定行 (32)100、删除A列为指定内容的行 (32)101、删除A列非数字单元行 (32)102、有条件删除当前行 (32)103、选择下一行 (33)104、选择第5行开始所有数据行 (33)105、选择光标或选区所在行 (33)106、选择光标或选区所在列 (33)107、光标定位到名称指定位置 (33)108、选择名称定义的数据区 (34)109、选择到指定列的最后行 (34)110、将Sheet1的A列的非空值写到Sheet2的A列 (34)111、将名称1的数据写到名称2 (34)112、单元反选 (34)113、调整选中对象中的文字 (35)114、去除指定范围内的对象 (35)115、更新透视表数据项 (35)116、将全部工作表名称写到A列 (36)117、为当前选定的多单元插入指定名称 (36)118、删除全部名称 (36)119、以指定区域为表目录补充新表 (36)120、按A列数据批量修改表名称 (37)121、按A列数据批量创建新表(控件按钮代码) (37)122、清除剪贴板 (37)123、批量清除软回车 (37)124、判断指定文件是否已经打开 (38)125、当前文件另存到指定目录 (38)126、另存指定文件名 (38)127、以本工作表名称另存文件到当前目录 (38)128、将本工作表单独另存文件到Excel当前默认目录 (38) 129、以活动工作表名称另存文件到Excel当前默认目录 (38) 130、另存所有工作表为工作簿 (39)131、以指定单元内容为新文件名另存文件 (39)132、以当前日期为新文件名另存文件 (39)133、以当前日期和时间为新文件名另存文件 (39)134、另存本表为TXT文件 (40)135、引用指定位置单元内容为部分文件名另存文件 (40) 136、将A列数据排序到D列 (40)137、将指定范围的数据排列到D列 (40)138、光标所在行上移一行 (41)139、加数据有效限制 (41)140、取消数据有效限制 (42)141、重排窗口 (42)142、按当前单元文本选择打开指定文件单元 (42)143、回车光标向右 (42)144、回车光标向下 (43)145、保护工作表时取消选定锁定单元 (43)146、保存并退出Excel (43)147、隐藏/显示指定列空值行 (43)148、深度隐藏指定工作表 (43)149、隐藏指定工作表 (43)150、隐藏当前工作表 (43)151、返回当前工作表名称 (44)152、获取上一次所进入工作簿的工作表名称 (44)153、按光标选定颜色隐藏本列其他颜色行 (44)154、打开工作簿自动隐藏录入表以外的其他表 (44)155、除最左边工作表外深度隐藏所有表 (45)156、关闭文件时自动隐藏指定工作表(ThisWorkbook) (45)157、打开文件时提示指定工作表是保护状态(ThisWorkbook) (45)158、插入10行 (45)159、全选固定范围内小于0的单元 (45)160、全选选定范围内小于0的单元 (46)161、固定区域单元分类变色 (46)162、A列半角内容变红 (47)163、单元格录入数据时运行宏的代码 (47)164、根据B列最后数据快速合并A列单元格的控件代码 (47)165、在F1单元显示光标位置批注内容的代码 (47)166、显示光标所在单元的批注的代码 (48)167、使单元内容保持不变的工作表代码 (48)168、有条件执行宏 (48)169、有条件执行不同的宏 (48)170、提示确定或取消执行宏 (49)171、提示开始和结束 (49)172、拷贝指定表不相邻多列数据到新位置 (49)173、选择2至4行 (49)174、在当前选区有条件替换数值为文本 (49)175、自动筛选全部显示指定列 (50)176、自动筛选第2列值为A的行 (50)177、取消自动筛选() (50)178、全部显示指定表的自动筛选 (50)179、强行合并单元 (50)180、设置单元区域格式 (50)181、在所有工作表的A1单元返回顺序号 (51)182、根据A1单元内容返回C1数值 (51)183、根据A1内容选择执行宏 (51)184、删除A列空行 (51)185、在A列产生不重复随机数 (52)186、将A列数据随机排列到F列 (52)187、取消选定区域的公式只保留值(假空转真空) (52)188、处理导入的显示为科学计数法样式的身份证号 (53)189、返回指定单元的行高和列宽 (53)190、指定行高和列宽 (53)191、指定单元的行高和列宽与A1单元相同 (53)191、填公式 (53)192、建立当前工作表的副本为001表 (54)193、在第一个表前插入多工作表 (54)194、清除A列再插入序号 (54)195、反方向文本(自定义函数) (54)196、指定选择单元区域弹出消息 (54)197、将B列数据添加超链接到K列 (55)198、删除B列数据的超链接 (55)199、分离临时表A列数据的文本和超链接并整理到数据库表 (55)200、分离临时表A列数据的文本和超链接并会同其他数据整理到数据库表 (55)201、返回A列最后一个非空单元行号 (56)202、返回表中第一个非空单元地址(行搜索) (56)203、返回表中各非空单元区域地址(行搜索) (56)204、返回第一个数值行号 (56)205、返回第1行最右边非空单元的列号 (57)206、返回连续数值单元的数量 (57)207、统计指定范围和内容的单元数量 (57)208、统计不同颜色的数字的和(自定义函数) (57)209、返回非空单元数量 (57)210、返回A列非空单元数量 (58)211、返回圆周率π (58)212、定义指定单元内容为页眉/页脚 (58)213、提示并全部清除当前选择区域 (58)214、全部清除当前选择区域 (58)215、清除指定区域数值 (58)216、对指定工作表执行取消隐藏》打印》隐藏工作表 (59)217、打开文件时执行指定宏(工作簿代码) (59)218、关闭文件时执行指定宏(工作簿代码) (59)219、弹出提示A1单元内容 (59)220、延时15秒执行重排窗口宏 (59)221、撤消工作表保护并取消密码 (60)222、重算指定表 (60)223、将第5行移到窗口的最上面 (60)224、对第一张工作表的指定区域进行排序 (60)225、显示指定工作表的打印预览 (60)226、用单元格A1的内容作为文件名另存当前工作簿 (60)227、[禁用/启用]保存和另存的代码 (60)228、在A和B列返回当前选区的名称和公式 (61)229、朗读朗读A列,按ESC键中止 (61)230、朗读固定语句,请按ESC键终止 (61)231、在M和N列的14行以下选择单元时显示调用日历控件(工作表代码) (62)232、添加自定义序列 (62)233、弹出打印对话框 (62)234、返回总页码 (62)235、合并各工作表内容 (63)236、合并指定目录中所有文件中相同格式工作表的数据 (64)237、隐藏指定工作表的指定列 (64)238、把a列不重复值取到e列 (65)239、当前选区的行列数 (65)240、单元格录入1位字符就跳转(工作表代码) (65)241、当指定日期(每月10日)打开文件执行宏 (65)242、提示并清空单元区域 (66)243、返回光标所在行号 (66)244、按照当前行A列的图片名称插入图片到H列 (66)245、当前行下插入1行 (66)246、取消指定行或列的隐藏 (67)247、复制单元格所在行 (67)248、复制单元格所在列 (67)249、新建一个工作表 (67)250、新建一个工作簿 (67)251、选择多表为工作组 (67)252、在当前工作组各表中分别执行指定宏 (68)253、复制当前工作簿的报表到临时工作簿 (69)254、删除指定文件 (70)255、合并A1至C1的内容写到D15单元的批注中 (70)256、自动重算 (70)257、手动重算 (70)1、打开全部隐藏工作表Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub2、循环宏Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" ThenExit For'如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For'如果某列出现"完成"内容则退出循环Next iEnd Sub3、录制宏时调用“停止录制”工具栏Sub 录制宏时调用停止录制工具栏()/doc/aa18030293.html,mandBars("Stop Recording").Visible = TrueEnd Sub4、高级筛选5列不重复数据至指定表Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D 列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _ "A1"), Unique:=True Sheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending,Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub5、双击单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd Sub6、双击指定区域单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub7、进入单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字(/doc/aa18030293.html,)Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub8、进入指定区域单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call 打开隐藏表9、在多个宏中依次循环执行一个(控件按钮代码)Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd Sub11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub12、根据A1单元文本隐藏/显示按钮(控件按钮代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub13、当前单元返回按钮名称(控件按钮代码)Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub14、当前单元内容返回到按钮名称(控件按钮代码)Private Sub CommandButton1_Click() CommandButton1.Caption = ActiveCellEnd Sub15、奇偶页分别打印Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub16、自动打印多工作表第一页Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub17、查找A列文本循环插入分页符Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页") 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.AddBefore:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小() Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then Pic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub19、返回光标所在行数Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub20、在A1返回当前选中单元格数量Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub21、返回当前工作簿中工作表数量Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub22、返回光标选择区域的行数和列数Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub23、工作表中包含数据的最大行数Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub24、返回A列数据的最大行数Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub25、将所选区域文本插入新建文本框Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left + ActiveCell.Width, ActiveCell.Top + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub26、批量插入地址批注Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selection/doc/aa18030293.html,ment.Deleter.AddComment/doc/aa18030293.html,ment.Visible = False /doc/aa18030293.html,ment.Text Text:="本单元格:" & r.Address & " of " & Selection.Address Next End IfEnd Sub27、批量插入统一批注Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddComment/doc/aa18030293.html,ment.Visible = False /doc/aa18030293.html,ment.TextText:=msgNextEnd IfEnd Sub28、以A1单元内容批量插入批注Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddComment/doc/aa18030293.html,ment.Visible = False /doc/aa18030293.html,ment.TextText:=[a1].T extNextEnd IfEnd Sub29、不连续区域插入当前文件名和表名及地址Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + /doc/aa18030293.html, + "]" + /doc/aa18030293.html, + "!" + mycell.Address NextEnd Sub30、不连续区域录入当前单元地址Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub31、连续区域录入当前单元地址Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub32、返回当前单元地址Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub33、不连续区域录入当前日期Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub34、不连续区域录入当前数字日期Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub35、不连续区域录入当前日期和时间Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss") End Sub36、不连续区域录入对勾Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub37、不连续区域录入当前文件名Sub 批量录入当前文件名()Selection.FormulaR1C1 = /doc/aa18030293.html,End Sub38、不连续区域添加文本Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub39、不连续区域插入文本Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub40、从指定位置向下同时录入多单元指定内容Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr) End Sub41、按aa工作表A列的内容排列工作表标签顺序Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub42、以A1单元文本作表名插入工作表Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add/doc/aa18030293.html, = nmEnd Sub43、删除全部未选定工作表Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As Boolean Dim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheets ShtName(n) = /doc/aa18030293.html, n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = /doc/aa18030293.html, TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub44、工作表标签排序Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选'是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选'否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub45、定义指定工作表标签颜色Sub 定义指定工作表标签颜色()Sheets("Sheet1").T ab.ColorIndex = 46End Sub46、在目录表建立本工作簿中各表链接目录Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add/doc/aa18030293.html, = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1", ScreenTip:=Sheets(i).NameEnd IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub。
excel VBA常用的100条语法
VBA语句集(第1辑)定制模块行为(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=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) '偏移一列Ra nge(“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代码 和语法
excel常用vba代码和语法Excel VBA(Visual Basic for Applications)是一种为Excel编程的语言,可以使用VBA代码来自动化执行各种操作。
以下是一些常用的VBA代码和语法示例:1. 定义和使用变量:```vbaDim num As Integernum = 10```2. 循环结构:- For循环:```vbaFor i = 1 To 10' 循环体Next i```- While循环:```vbaWhile i < 10' 循环体i = i + 1Wend```3. 条件判断:- If语句:```vbaIf condition Then' 条件满足时执行的代码ElseIf condition Then' 第二个条件满足时执行的代码Else' 条件不满足时执行的代码End If```- Select Case语句:```vbaSelect Case gradeCase "A"' A级别操作Case "B", "C"' B或C级别操作Case Else' 其他情况的操作End Select```4. 定义和调用子过程(函数):```vbaSub MySubroutine()' 子过程的代码End SubFunction MyFunction()' 函数的代码MyFunction = resultValue ' 返回结果End Function```5. 控制Excel对象:- 打开和关闭工作簿:```vbaWorkbooks.Open ("C:\example.xlsx") ActiveWorkbook.Close```- 读取和写入单元格:```vbaRange("A1").Value = "Hello"value = Range("A1").Value```- 获取和设置工作表属性:```vbaSheets("Sheet1").Activate Worksheets.Add```这些示例演示了一些常用的VBA代码和语法。
VBA 语句汇总
程序错误继续执行On Error Resume Next屏幕不更新Application.ScreenUpdating = FalseApplication.ScreenUpdating = True警示为假Application.DisplayAlerts = False关掉文件不保存Windows().ActivateActiveWorkbook.Close savechanges:=False定义选中区域的坐标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叮叮小文库在命名区域中的单元格上循环下例用For Each...Next 循环语句在命名区域中的每一个单元格上循环。
如果该区域中的任一单元格的值超过limit 的值,就将该单元格的颜色更改为黄色。
Sub ApplyColor()Const Limit As Integer = 25For Each c In Range("MyRange")If c.Value > Limit Thenc.Interior.ColorIndex = 27End IfNext cEnd Sub增加一个workbooks, name CarrierWorkbooks.AddActiveWorkbook.SaveAs Filename:="D:\BOM Produce\carrier.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _, CreateBackup:=False增加一个表单,获取nameSheets.Addx = Sheets(x).Select插入一列Range("E5").SelectSelection.EntireRow.Insert插入一栏Range("F6").SelectSelection.EntireColumn.Insert向右移动一格ActiveCell.Offset(0, -1).Select'当前单元格当前单元格的值叮叮小文库ActiveCell.FormulaR1C1 = “UseRow”复制表单Windows("spacebom.xls").ActivateCells.SelectSelection.CopyWindows("Bomsetup.xls").ActivateSheets("Sheet2").SelectCells.SelectActiveSheet.PasteRange("A1").Select复制单元格Windows("Akiko Resource Budget Plan.xls").ActivateRange("BK71").SelectApplication.CutCopyMode = FalseSelection.CopyWindows("Book1.xls").ActivateSheets("Sheet2").SelectActiveSheet.Paste当前单元格整栏选择ActiveCell.EntireColumn.Select、整栏复制与粘贴Columns("C:C").SelectSelection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False两栏进行交换Columns("L:L").SelectSelection.CutColumns("N:N").SelectSelection.Insert Shift:=xlToRightDelete:Rows("2:2").SelectSelection.Delete Shift:=xlUpRange("B4").SelectSelection.EntireRow.Delete叮叮小文库每列从第k栏开始每5个一列进行排列:Windows("bomsetup.xls").ActivateDim Counter As IntegerFor Counter = 2 To 1000Cells(Counter, 11).SelectIf ActiveCell.Value = "" ThenActiveCell.Offset(1, 0).SelectElseActiveCell.Offset(1, -5).SelectSelection.EntireRow.InsertActiveCell.Offset(-1, 5).SelectRange(Selection, Selection.End(xlToRight)).SelectSelection.CutActiveCell.Offset(1, -5).SelectActiveSheet.PasteEnd IfNext Counter字体变色Range("C3").SelectSelection.Font.ColorIndex = 3单元格变背景色Selection.Interior.ColorIndex=3字体变粗Range("D4").SelectSelection.Font.Bold = True在B栏中查找是否有0000后Columns("B:B").SelectSet findxx = Selection.Find("0000")If findxx Is Nothing Then在B栏中查找0000后,向左移动一格Columns("B:B").SelectSelection.Find(What:="0000", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _False, MatchByte:=False, SearchFormat:=False).ActivateActiveCell.Offset(0, -1).Select在c栏中找到N/a后用******替代Columns("C:C").SelectSelection.Replace What:="n/a", Replacement:="******", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ReplaceFormat:=False排序Cells.SelectSelection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("C2") _ , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _, Orientation:=xlTopToBottom, SortMethod:=xlStroke, DataOption1:= _xlSortNormal, DataOption2:=xlSortNormal自动塞选Cells.SelectSelection.AutoFilterSelection.AutoFilter Field:=10 ‘取消赛选第10栏Selection.AutoFilter Field:=10, Criteria1:="<>#N/A", Operator:=xlAnd ‘ 第10栏选择非#N/A自动运行FormPrivate Sub Workbook_Open()你的窗体.ShowEnd Sub调整宽度Columns("L:L").EntireColumn.AutoFit代表单元格区域"A1:J10"Range(Cells(1,1),Cells(10,10))代表单元格区域"A1:J10"区分颜色并删除Sub FilterColor()Dim UseRow, ACUseRow = Cells.SpecialCells(xlCellTypeLastCell).RowAC = ActiveCell.ColumnFor i = 1 To UseRowIf Cells(i, AC).Interior.ColorIndex <> ActiveCell.Interior.ColorIndex ThenCells(i, AC).EntireRow.deleteEnd IfNextEnd IfEnd Sub依次打开选定数据夹中的xls 文件Sub aa()Dim myDialog As FileDialog, oFile As Object, strName As String, n As Integer Dim FSO As Object, myFolder As Object, myFiles As ObjectDim ySet myDialog = Application.FileDialog(msoFileDialogFolderPicker)n = 1With myDialogIf .Show <> -1 Then Exit SubSet FSO = CreateObject("Scripting.FileSystemObject")Set myFolder = FSO.GetFolder(.InitialFileName)Set myFiles = myFolder.FilesFor Each oFile In myFilesstrName = UCase()strName = VBA.Right(strName, 3)If strName = "XLS" Theny = Workbooks.open Filename:=yn = n + 1End IfNextEnd WithEnd SubSUM 变量引用Dim nRow1, nRow2 As IntegerDim nCol As IntegernRow1 = 2nRow2 = 11nCol = 4Range("d12").Formula = "=sum(d" & nRow1 & ":d" & nRow2 & ")"或者ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & J & "]C)"叮叮小文库XlDirection 可为XlDirection 常量之一。
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。
excelvb语法
excelvb语法Excel VBA(Visual Basic for Applications)是一种编程语言,用于在Excel中编写宏和自定义功能。
它允许用户编写脚本来自动执行各种任务,从简单的数据处理到复杂的报告生成和用户界面设计。
以下是一些Excel VBA的基本语法:1. Sub和End Sub,Sub是子程序的开始,End Sub标记子程序的结束。
子程序是一组执行特定任务的代码块。
2. Dim,用于声明变量。
例如,Dim x As Integer声明一个名为x的整数变量。
3. If...Then...Else语句,用于执行条件性的代码块。
例如,If x > 10 Then...Else...4. For...Next循环,用于重复执行一组语句。
例如,For i = 1 To 10...Next i.5. Do...Loop循环,另一种用于重复执行一组语句的循环结构。
例如,Do While x < 10...Loop.6. Select Case语句,用于根据表达式的值执行不同的代码块。
例如,Select Case x Case 1 To 5...Case 6 To 10...除了以上列举的基本语法外,Excel VBA还包括许多其他功能,如数组、函数、对象和事件处理等。
通过灵活运用这些语法,可以实现各种复杂的自动化和定制化任务。
总之,Excel VBA语法提供了丰富的功能和灵活性,使用户能够以编程的方式控制Excel应用程序,从而实现更高效的数据处理和报表生成等任务。
希望这些信息能够帮助你更好地理解ExcelVBA的语法和功能。
EXCEL_VBA常用语句300句
EXCEL VBA常用语句100句(1)定制模块行为(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=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中的内容。
EXCELVBA零基础教程:最全的循环语句(办公室职场必备)
EXCELVBA零基础教程:最全的循环语句(办公室职场必备)在使用VBA表格出来程序的时候,最核心的逻辑有两点,一是循环,二是判断语句。
一般要么是循环里面嵌套判断语句,要么就是判断语句里面嵌套判断语句。
更复杂点的就是嵌套里面既有循环还有判断。
今天重点通过一个小小的例子,说明一下VBA中的常见的五种循环语句。
For ....next,Do while ....loop,Do ....loop until,While... wend,For each... in .. Next,其中我最常用的是For ....next ,Do while ....loop。
Do ....loop until,While... wend,这两个基本上都可以被写成For ... Next, Do while ....loop的形式。
For each... in .. Next 主要是遍历元素集合,比如数组,对象,文件什么。
初学者最好先掌握好For Next和Do While ... loop,然后再学一下IF ... Then ..的判断语句。
就基本上可以应对大部分EXCEL表格处理的问题了,至少模拟一下EXCEL自带的公式是绰绰有余了。
今天通过解决一个小问题来学习一下这五种循环。
问题:通过编写VBA匹配生产企业中的省市名称。
比如要提取A 列“中山市花城食品饮料有限公司”中的地级市名称“中山”两字到B列中,如下图:•1、For…Next 循环,当你知道你需要重复运行多少次某段语句时,可以使用For…Next 语句。
它的语法如下:For 计数器 = 开始 T o 结束 [步长]语句1语句2Next [计数器]比如计算2到100之间所有偶数之和,就可以这样写:Sub 求和()Dim Sum As IntegerFor i = 2 To 100 Step 2Sum = Sum iNextMsgBox SumEnd Sub将 i= 2 改为 i = 2,step 2改为step 1(若步长为1 step 1 可以省略) 就是计算1加到100的和。
ExcelVBA入门的基础语句
ExcelVBA入门的基础语句选择当前活动的工作簿:ThisWorkbook.Activate如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls” ,例如:Windows('Totol.xls').Activate选择一个工作表:Sheets('Balance').Activate.选择单元格:Range('A1').Select选择连续的单元格:Range('A1:G8').Select选择不连续的单元格:Range('A1,B6,D9').SelectRange('A1,B6:B10,D9').Select单元格间移动:ActiveCell.Offset(13, 14).SelectSelection.Offset(-3, -4).SelectRange('G8').Offset(-3, -4).Select注意:你可以定义一变量,并且用offset来实现,例如:varFreightRowsCount = Range('A1').CurrentRegion.Rows.CountActiveCell.Offset(varFreightRowsCount, 0).Select选择整个工作表:Cells.Select选择当前单元格所在的区域(遇到空行/空列即止):Range('A1').CurrentRegion.Select选择行或列:Rows('1').SelectColumns('A').Select或者:ActiveCell.EntireRow.SelectActiveCell.EntireColumn.Select选择相邻的多行/多列:Columns('A:C').SelectRows('1:5').Select选择不相邻的多行/多列:注意:和选择相邻的多行/多列不同,使用'Range'而不是'Columns/Rows':Range('A:A, C:C, E:F').SelectRange('1:1,5:6,9:9').Select选择当前活动单元格向下至最后一个非空单元格:Range('A1', Range('A1').End(xlDown)).SelectRange(ActiveCell, ActiveCell.End(xlDown)).Select选择当前活动单元格向上至第一个非空单元格:Range('A32', Range('A32').End(xlUp)).SelectRange(ActiveCell, ActiveCell.End(xlUp)).Select选择当前活动单元格向右至第一个非空单元格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[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。