EXCEL-VBA常用语句

合集下载

excel vba常用代码

excel vba常用代码

excel vba常用代码Excel VBA是一种用于编写宏的编程语言,它可以帮助我们在Excel 中进行自动化操作。

在VBA中,有一些常用的代码,可以帮助我们快速完成一些常见的任务。

本文将介绍一些常用的Excel VBA代码,帮助读者更好地理解并运用它们。

一、数据处理1.1 数据筛选在Excel中,我们经常需要根据某些条件筛选数据。

使用VBA可以实现自动筛选,代码如下:```ActiveSheet.Range("A1:D10").AutoFilter Field:=1, Criteria1:=">10"```以上代码将自动筛选出范围为A1:D10的数据,其中第一列大于10的数据。

1.2 数据排序有时候,我们需要对数据进行排序。

使用VBA可以实现自动排序,代码如下:```ActiveSheet.Range("A1:D10").Sort Key1:=Range("A1"), Order1:=xlAscending```以上代码将自动对范围为A1:D10的数据根据第一列进行升序排序。

1.3 数据透视表数据透视表可以帮助我们对数据进行汇总和分析。

使用VBA可以自动生成数据透视表,代码如下:```ActiveSheet.PivotTableWizard```以上代码将自动生成一个数据透视表。

二、单元格操作2.1 单元格赋值在VBA中,我们可以使用代码将某个值赋给指定的单元格,代码如下:```Range("A1").Value = "Hello World"```以上代码将把"Hello World"赋值给A1单元格。

2.2 单元格格式设置使用VBA可以设置单元格的格式,例如设置字体、颜色、边框等,代码如下:```Range("A1").Font.Bold = TrueRange("A1").Interior.Color = RGB(255, 0, 0)Range("A1").Borders.LineStyle = xlContinuous```以上代码将设置A1单元格的字体为粗体、背景色为红色、边框为实线。

ExcelExcel之VBA编程常用语句300句

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在excel中的使用之vba语句解释

vba在excel中的使用之vba语句解释

vba在excel中的使用之vba语句解释*********************************************************************************(1) Set objExcel = CreateObject("Excel.Application")objExcel.Workbooks.Add ‘创建Excel工作簿(2) Application.ActivateMicrosoftApp xlMicrosoftWord '开启Word应用程序(3) Application.TemplatesPath ‘获取工作簿模板的位置(4) Application.Calculation = xlCalculationManual ‘设置工作簿手动计算Application.Calculation = xlCalculationAutomatic ‘工作簿自动计算(5) Worksheets(1).EnableCalculation = False ‘不对第一张工作表自动进行重算(6) Application.CalculateFull '重新计算所有打开的工作簿中的数据(7) Application.RecentFiles.Maximum = 5 '将最近使用的文档列表数设为5(8) Application.RecentFiles(4).Open '打开最近打开的文档中的第4个文档(9) Application.OnTime DateSerial(2006,6,6)+TimeValue(“16:16:16”),“BaoPo”‘在2006年6月6日的16:16:16开始运行BaoPo 过程(10) Application.Speech.Speak ("Hello" & erName) ‘播放声音,并使用用户的姓名问候用户(11) MsgBox Application.PathSeparator '获取"\"号(12) MsgBox Application.International(xlCountrySetting) '返回应用程序当前所在国家的设置信息(13) Application.AutoCorrect.AddReplacement "葛洲坝", "三峡" '自动将在工作表中进行输入的"葛洲坝"更正为"三峡"(14) Beep '让计算机发出声音(15) Err.Number ‘返回错误代码(16) MsgBox IMEStatus '获取输入法状态(17) Date = #6/6/2006#Time = #6:16:16 AM# '将系统时间更改为2006年6月6日上午6时16分16秒(18) Application.RollZoom = Not Application.RollZoom '切换是否能利用鼠标中间的滑轮放大/缩小工作表(19) Application.ShowWindowsInTaskba = True ‘显示任务栏中的窗口,即各工作簿占用各自的窗口(20) Application.DisplayScrollBars = True ‘显示窗口上的滚动条(21) Application.DisplayFormulaBar = Not Application.DisplayFormulaBar '切换是否显示编辑栏(22) Application.Dialogs(xlDialogPrint).Show ‘显示打印内容对话框(23) Application.MoveAfterReturnDirection = xlToRight '设置按Enter键后单元格的移动方向向右(24) Application.FindFile '显示打开对话框(25) ThisWorkbook.FollowHyperlink /vba123‘打开超链接文档(26) ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '将当前工作簿设置为只读(27) ActiveWorkbook.AddToFavorites '将当前工作簿添加到收藏夹文件夹中(28) ActiveSheet.CheckSpelling '在当前工作表中执行"拼写检查"(29) ActiveSheet.Protect userinterfaceonly:=True ‘保护当前工作表(30) ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName ‘在当前工作表的左侧页眉处打印出工作簿的完整路径和文件名(31) Worksheets("Sheet1").Range("A1:G37").Locked = FalseWorksheets("Sheet1").Protect'解除对工作表Sheet1中A1:G37区域单元格的锁定'以便当该工作表受保护时也可对这些单元格进行修改(32) Worksheets("Sheet1").PrintPreview '显示工作表sheet1的打印预览窗口(33) ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮(34) ActiveSheet.PageSetup.PrintGridlines = True '在打印预览中显示网格线ActiveSheet.PageSetup.PrintHeadings = True '在打印预览中显示行列编号(35) ActiveSheet.ShowDataForm '开启数据记录单(36) Worksheets("Sheet1").Columns("A").Replace _What:="SIN", Replacement:="COS", _SearchOrder:=xlByColumns, MatchCase:=True '将工作表sheet1中A列的SIN替换为COS(37) Rows(2).Delete '删除当前工作表中的第2行Columns(2).Delete '删除当前工作表中的第2列(38) ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell '在当前单元格左侧插入一条垂直分页符ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell '在当前单元格上方插入一条垂直分页符(39) ActiveWindow.ScrollRow = 14 '将当前工作表窗口滚动到第14行ActiveWindow.ScrollColumn = 13 '将当前工作表窗口滚动到第13列(40) ActiveWindow.Close '关闭当前窗口(41) ActiveWindow.Panes.Count '获取当前窗口中的窗格数(42) Worksheets("sheet1").Range("A1:D2").CreateNames Top:=True '将A2至D2的单元格名称设定为A1到D1单元格的内容(243) Application.AddCustomList listarray:=Range("A1:A8") '自定义当前工作表中单元格A1至A8中的内容为自动填充序列(44) Worksheets("sheet1").Range("A1:B2").CopyPicture xlScreen, xlBitmap '将单元格A1至B2的内容复制成屏幕快照(45) Selection.Hyperlinks.Delete ‘删除所选区域的所有链接Columns(1).Hyperlinks.Delete ‘删除第1列中所有的链接Rows(1).Hyperlinks.Delete ‘删除第1行中所有的链接Range("A1:Z30").Hyperlinks.Delete ‘删除指定范围所有的链接(46) ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, _Address:="C:\Windows\System32\Calc.exe", ScreenTip:="按下我,就会开启Windows计算器", TextToDisplay:="Windows计算器" '在活动单元格中设置开启Windows计算器链接(47) ActiveCell.Value = Shell("C:\Windows\System32\Calc.exe", vbNormalFocus) '开启Windows计算器(48) ActiveSheet.Rows(1).AutoFilter ‘打开自动筛选。

excel vba string 语句

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中处理字符串的一些基本语句和操作。

excel vba 常用条件语句

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语句用于跳转到指定的标签或行号。

常用的、带详细注释的ExcelVBA入门语句

常用的、带详细注释的ExcelVBA入门语句

常用的、带详细注释的ExcelVBA入门语句line1 = my_sheet.Cells(1, 1).CurrentRegion.Rows.Countline_count = [a65535].End(xlUp).Row转为十六进制:HEX()十六进制转为十进制:lac_id = Val("&H" & lac_id)If lac_id < 0 Then lac_id = 65536 + lac_id八进制转为十进制:lac_id = Val("&O" & lac_id)导入文本文件:ActiveWorkbook.Worksheets.AddWith ActiveSheet.QueryTables.Add(Connection:= _"TEXT;" & Filename, Destination:=Range("A1")).Refresh BackgroundQuery:=False文件拷贝:FileCopy FileName, FileName & ".bak"[VBA起步]常用的、带解释的VBA 短句[A65536].End(xlUp).Row 'A列末行向上第一个有值的行数[A1].End(xlDown).Row 'A列首行向下第一个有值之行数[IV1].End(xlToLeft).Column '第一行末列向左第一列有数值之列数。

[A1].End(xlToRight).Column '第一行首列向右有连续值的末列之列数mandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符Cells.WrapText = False '取消自动换行If Len(Target) > 5 Then '如果当前单元格中的字符数超过5个,执行下一行Target.WrapText = True '自动换行End If[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden = True '有空格即隐藏行[A2] '返回活动单元格的工作表名[A2] '返回活动单元格的工作簿名如下代码可使工作簿打开后30秒(或闲置30秒)内不输入、不重新选择等,自动关闭工作簿Private Sub Workbook_Open() '工作簿打开事件tt '工作簿打开时启动tt 过程End SubPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) '工作表变化事件tt '工作表中任一单元格有变化时启动tt 过程End SubPrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件tt '工作表中单元格的选择有变化时启动tt 过程End SubSub 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 Subrange("e4").addcomment.Text "代头" & Chr(10) & "内容……"'添加批注range("e4").Comment.Visible = True '显示批注把工作簿中所有工作表的指定列调整为最佳列宽:Sub 调整列宽()Dim i%For i = 1 To Sheets.Count '遍历工作簿中所有的工作表Sheets(i).Columns("A:K").AutoFit '把每个工作表的[A:K]列调整为最佳列宽Next iEnd SubDo循环语句的几种形式: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时执行... ... '要执行的语句Wend勾选"VBA项目的信任"Application.SendKeys "%(tmstv){ENTER}" '在Excel 窗口操作Application.SendKeys "%(qtmstv){ENTER}" '在VBE 窗口操作mandBars("命令按钮名称").Position = msoBarFloating '使[命令按钮]悬浮在表格中mandBars("命令按钮名称").Position = msoBarTop '使[命令按钮]排列在工具栏中ActiveSheet.protect Password:="wshzw" '为工作表保护加口令ActiveSheet.Unprotect Password:="wshzw" '解除工作表保护Activesheet.ProtectContents '判断工作表是否处于保护状态工作表的复制与命名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 SubApplication.EnableEvents = False......Application.EnableEvents = True '抑制事件连锁执行Application.EnableEvents = FalseActiveWorkbook.Save '抑制BeforeSave事件的发生Application.EnableEvents = True '抑制指定事件Application.DisplayAlerts=False '屏蔽确认提示Application.ScreenUpdating = False.......Application.ScreenUpdating = true ' 冻结屏幕以加快程序运行ActiveCell.CurrentRegion.Select '选择与活动单元格相连的区域range("a2:a20").NumberFormatLocal = "00-00" '区域的格式化ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row '已用区域的最末行ActiveSheet.Copy Before:=Sheets(1) '复制活动工作表到第一张工作表之前range("a2:a20").FormulaHidden = True '工作表处于保护状态时隐藏部分单元格公式FileDateTime("E:\My Documents\33.xls")或FileDateTime(thisworkbook.FullName) '文件被创建或最后修改后的日期和时间FileLen(thisworkbook.FullName) / 1024或FileLen("E:\My Documents\temp\33.xls") / 1024 '文件的长度(大小),单位是KBApplication.AskToUpdateLinks = False '不询问是否更新链接,并自动更新链接ActiveSheet.Hyperlinks.Delete '删除活动工作表超链接ActiveWorkbook.SaveLinkValues = False '不保存活动工作簿的外部链接值ActiveSheet.PageSetup.CenterFooter = Range("k2").Value '打印时设置自定义页脚ActiveSheet.PageSetup.Orientation = xlLandscape '设置为横向打印ActiveSheet.PageSetup.Orientation = xlPortrait '设置为纵向打印Application.WindowState = xlMinimized '最小化窗口Application.WindowState = xlNormal '最大化窗口Sub 删除工作表()Application.DisplayAlerts = FalseSheet1.DeleteApplication.DisplayAlerts = TrueEnd Sub有删除就有添加Sub 添加工作表()For i = 1 To 5 = iNextEnd Sub[A1:A20].AdvancedFilter xlFilterCopy, [B1], Unique:=True '可去掉重复数据[A2:C32].Replace What:="F", Replacement:="G" '指定范围内的查找与替换Activesheet.AutoFilterMode = false '取消自动筛选执行以下语句可有效缩小工作簿的大小,执行前请先看清每条语句的作用:edRange.ClearComments '清除活动工作表已使用范围所有批注edRange.ClearFormats '清除活动工作表已使用范围所有格式edRange.Validation.Delete '取消活动工作表已使用范围的数据有效性ActiveSheet.Hyperlinks.Delete '删除活动工作表超链接ActiveSheet.DrawingObjects.Delete '删除活动工作表已使用范围的所有对象edRange = edRange.Value '取消活动工作表已使用范围的公式并保留值还有:Sub x()Dim myRange As StringmyRange = edRange.Address '去除活动工作表无数据的行列End SubActiveWorkbook.FullName '当前窗口文件名与路径Application.AltStartupPath= "E:\My\MyStart" '替补启动目录路径Application.AutoRecover.Path '返回/设置Excel存储"自动恢复"临时文件的完整路径Application.DefaultFilePath '选项>常规中的默认工作目录Application.Evaluate("=INFO(""directory"")") '默认工作目录Application.LibraryPath '返回库文件夹的路径workTemplatesPath '返回保存模板的网络路径Application.Path '返回应用程序完整路径Application.RecentFiles.Item(1).Path '返回最近使用的某个文件路径,Item(1)=第一个文件Application.StartupPath 'Excel启动文件夹的路径Application.TemplatesPath '返回模板所存储的本地路径erLibraryPath '返回用户计算机上COM 加载宏的安装路径Debug.Print Application.PathSeparator '路径分隔符"\"CurDir '默认工作目录Excel.Parent.DefaultFilePath '默认工作目录ThisWorkbook.Path '返回当前工作薄的路径dim mm(2,10)Range("a1:b10")=mm '可以将二维数组赋值给RangeApplication.Dialogs(XLdialogsaveas).show 显示保存对话框[SIZE=1]Sub x()Dim myRange As StringmyRange = edRange.Address '去除活动工作表无数据的行列End Sub这相当于把新的已使用区域赋值给变量,效果等同于手工删除多余的列或行后立即保存;来一个函数的Private Sub Worksheet_SelectionChange(ByVal Target As Range)'右边单元格反向显示活动单元格文本If ActiveCell.Column < 256 Then ActiveCell.Offset(0, 1) = StrReverse(ActiveCell)End Sub想不到UsedRange还可以这样用,又学到了!有了这个就可以轻松取得当前Sheet的最末行和最末列号了:Sub test()Dim myRange As StringmyRange = edRange.AddressDebug.Print "LastRow=" & Cells.SpecialCells(xlCellTypeLastCell).RowDebug.Print "LastColumn=" & Cells.SpecialCells(xlCellTypeLastCell).ColumnmyRange = ""End Sub跟一帖:如上下相邻单元格数据相同则删除一个Sub Yjue()Dim myCell As Range, NCell As Range '定义Set myCell = ActiveSheet.Range("b2") '把对象ActiveSheet.Range("b2")赋给变量myCellDo While Not IsEmpty(myCell) '条件为True时执行Set NCell = myCell.Offset(1, 0) '把对象myCell的下一个单元格赋给变量NCellIf NCell.Value = myCell.Value Then '如上下相邻单元格数据相同,则望下执行myCell.Delete '删除myCellEnd If '结束条件语句Set myCell = NCell '把变量NCell赋给变量myCell,等于在循环中把原myCell下移了一格LoopEnd Sub复制行高列宽与内容:Sub Yjue() '过程的名称Sheet2.Rows("2:23").Copy '复制行区域Sheet3.Select '选择粘贴区域Range("A2").PasteSpecial Paste:=xlPasteColumnWidths '粘贴类型ActiveSheet.Paste '实施粘贴Application.CutCopyMode = False '取消复制模式End Sub如整行为空白则删除整行:Sub DelRow()Dim i As Integer, LastRow As IntegerLastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row '把最后行的行号赋给变量For i = LastRow To 1 Step -1 '倒循环If Range("iv" & i).End(xlToLeft).Column = 1 And Range("a" & i) = "" ThenRange("a" & i).EntireRow.Delete '如整行为空白则删除整行End IfNext iEnd SubT = Application.GetOpenFilename("Text Files (*.dat), *.dat")选择文件保存路径通过依次赋色给单元格的例子,展示简单的On Error GoTo Line1 用法:Sub Yjue() '过程名Dim i As Integer '定义i 为整型On Error GoTo Line1 '遇到错误跳转到Line1For i = 0 To 65 '予设从0 循环到65Cells(i + 1, 2).Interior.ColorIndex = i '依次赋色给第2列的单元格Cells(i + 1, 1) = i '依次给第1列的单元格标上色索引号Next iExit Sub '退出过程Line1: '遇到错误跳转到这行继续执行MsgBox "默认颜色只有" & i - 1 & "种。

必须收藏!Excel-VBA语法200句

必须收藏!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。

excel vba 常用的方法

excel vba 常用的方法

excel vba 常用的方法Excel VBA常用的方法:Excel VBA(Visual Basic for Applications)是一种用于自动化Excel操作和处理数据的编程语言。

它提供了许多常用的方法,使得处理大量数据和执行复杂任务变得快捷高效。

以下是几个常用的Excel VBA方法介绍:1. Range方法:Range方法用于选择并操作Excel中的单元格或区域。

通过指定起始单元格和结束单元格的引用,可以选择一个或多个连续的单元格范围。

例如: ```vbaRange("A1").Value = "Hello, World!" '在单元格A1中写入Hello, World!```2. Cells方法:Cells方法用于选择并操作Excel中的单元格。

通过指定行号和列号,可以选择一个特定的单元格。

例如:```vbaCells(1, 1).Value = "Hello, World!" '在第1行第1列单元格中写入Hello, World!```3. Copy和Paste方法:Copy方法用于复制选定的单元格或区域,而Paste方法用于将复制的内容粘贴到目标单元格或区域。

例如:```vbaRange("A1").Copy '复制单元格A1Range("B1").PasteSpecial '将复制的内容粘贴到单元格B1```4. Find方法:Find方法用于在指定的单元格范围内查找指定的值。

它可以用于查找并选择包含特定值的单元格。

例如:```vbaSet FoundCell = Range("A1:D10").Find("SearchValue") '在A1:D10范围内查找值为SearchValue的单元格FoundCell.Select '选中找到的单元格```5. Filter方法:Filter方法用于在一个数据表中筛选数据。

Excel-VBA命令大全

Excel-VBA命令大全

本示例为设置密码窗口 (1) If Application.InputBox("请输入密码:") = 1234 Then [A1] = 1 '密码正确时执行 Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码 End If本示例为设置密码窗口 (1) X = MsgBox("是否真的要结帐?", vbYesNo) If X = vbYes Then Close本示例为设置工作表密码ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码 '本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改容。

For Each w In Workbooks If Then w.Close SaveChanges:=True End If Next w '每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。

Application.WindowState = xlMaximized '本示例显示活动工作表的名称。

MsgBox "The name of the active sheet is " & '本示例保存当前活动工作簿的副本。

ActiveWorkbook.SaveCopyAs "C:/TEMP/XXXX.XLS" '下述过程激活工作簿中的第四工作表。

Sheets(4).Activate '下述过程激活工作簿中的第1工作表。

Worksheets(1).Activate '本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改。

excel常用vba代码 和语法

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代码和语法。

Excel VBA常用语句全集

Excel VBA常用语句全集

Excel VBA语句集(300句)定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(5) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示(6) Application.ScreenUpdating=False '关闭屏幕刷新Application.ScreenUpdating=True '打开屏幕刷新(7) Application.Enable.CancelKey=xlDisabled '禁用Ctrl+Break中止宏运行的功能工作簿(8) Workbooks.Add() '创建一个新的工作簿(9) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿(10) ThisWorkbook.Save '保存工作簿(11) ThisWorkbook.close '关闭当前工作簿,workbooks.close只能关闭里面的,而外面的文件不能关掉。

application.workbooks.quit关闭整个EXCEL表格。

(12) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数(13) '返回活动工作薄的名称(14) ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小(16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化工作表(18) edRange.Rows.Count ‘当前工作表中已使用的行数(19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum”'将Sheet1命名为Sum(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=ActiveWorkbook. _Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2(24) Sheets(“sheet1”).Delete或Sheets(1).Delete '删除工作表1(25) ActiveWorkbook.Sheets(i).Name '获取工作表i的名称(26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示(28) edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式(29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接(30) ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=2 '将页面设置更改为横向(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.LeftFooter=erName ‘将用户名放置在活动工作表的页脚单元格/单元格区域(32) ActiveCell.CurrentRegion.Select或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select'选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select ‘选定当前工作表的所有单元格(34) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ‘偏移一列Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行(38) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(39) ActiveWindow.RangeSelection.Value=XX '将值XX输入到所选单元格区域中(40) ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数(41) Selection.Count '当前选中区域的单元格数(42) GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,””) ‘返回单元格中超级链接的地址并赋值(43) TextColor=Range(“A1”).Font.ColorIndex ‘检查单元格A1的文本颜色并返回颜色索引Range(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(44) cells.count ‘返回当前工作表的单元格数(45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3行,向右4列的单元格(46) Cells.Item(5,”C”) ‘引单元格C5Cells.Item(5,3) ‘引单元格C5(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)或Range(“A1”).Offset(4,5) ‘指定单元格F5(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)Rnage(“B3”).Resize(11,3) ‘创建B3:D13区域(49) Range(“Data”).Resize(,2) ‘将Data区域扩充2列(50) Union(Range(“Data1”),Range(“Data2”)) ‘将Data1和Data2区域连接(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘返回Data1和Data2区域的交叉区域(52) Range(“Data”).Count ‘单元格区域Data中的单元格数Range(“Data”). Columns.Count ‘单元格区域Data中的列数Range(“Data”). Rows.Count ‘单元格区域Data中的行数(53) Selection.Columns.Count ‘当前选中的单元格区域中的列数Selection.Rows.Count ‘当前选中的单元格区域中的行数(54) Selection.Areas.Count ‘选中的单元格区域所包含的区域数(55) edRange.Row ‘获取单元格区域中使用的第一行的行号(56) Rng.Column ‘获取单元格区域Rng左上角单元格所在列编号(57) ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions) ‘在活动工作表中返回所有符合条件格式设置的区域(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生的第3个字段的下拉列表名称(59) Range(“A1:C3”).Name=“computer”‘命名A1:C3区域为computer或Range(“D1:E6”).Name=“Sheet1!book”‘命名局部变量,即Sheet1上区域D1:E6为book或Names(“computer”).Name=“robot”‘将区域computer重命名为robot(60) Names(“book”).Delete ‘删除名称(61) Names.Add Name:=“ContentList”,_RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))”‘动态命名列(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar”‘命名字符串CompanyCar(63) Names.Add Name:=“Total”,RefersTo:=123456 ‘将数字123456命名为Total。

excel vba 之其它常用语句

excel vba 之其它常用语句

学习VBA之其它常用语句1、EXIT与END退出语句Exit 退出语句1.exit do2.exit for3.exit function4.exit sub第1个与第2个在之前讲过,这里不再陈述,第3个是退出自定义函数过程,在自定义函数时再细讲,这里讲下第4个。

Exit sub是在程序中间直接退出程序的命令。

例:Sub aa()For a=1 to 10If a>5 then exit subNextMsgbox “循环了” & a-1 & “次”End sub通过运行这段程序后,我们可以发现,程序中的msgbox命令并没有执行,这就是因为在循环中我加了这个exit sub。

这个exit sub命令意思等同于end sub。

那为什么既然有了end sub,为什么还要有exit sub这个命令呢?这是因为在一段程序里,只能有一个end sub来做为程序的结束语。

如果这里在if语句后加的是end sub,就会报错。

End 退出语句1.end if2.end select3.end function4.end sub5.end第1、2、4个我们讲过,第3个也会在自定义函数过程中讲,下面简单讲下end。

End 是强制退出所有的程序或过程,在程序运行中相当于exit sub,在过程中相当于exit function。

在这里就不举例了。

2、GOTO LINE跳转语句Goto line 语句是无条件跳转到指定的行。

一般情况下,goto…出现在判断语句中,在符合某种条件下,无条件跳转到line:行,去执行line:行下面的语句,line:行必须是单独成行,前后不能有任何命令,line可以用不含所有excel保留单词的任意名,可以是英文,也可以是数字。

Line后必须带”:”。

Line:行,可以在goto…之前,也可以在它之后。

这个语句很灵活,主要表现在:1. 当循环来使用例:Sub aa()Sim a$Line:A=inputbox(“请录入密码”)If a<>”admin” then goto lineEnd sub2.有选择的退出多层循环。

excelvb语法

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常用语句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常用语句

excel VBA常用语句

语法说明
参数说明
语句示例
For Ea句] [Exit For] [语句]
item:集合或数组中的元素 collection:集合或者数组
Next [item]
For counter = start To end [Step
step]
counter:计数器变量
Put [#]filenumber , [recnumber ], varname Randomize [number ] ReDim [Preserve] varname (subscripts ) [As type ] Reset Resume [0] Resume Next Resume line RmDir path
filenumberlist,则由 Open 语句打开的所有活动文件
都将关闭。
constname:常量名
type:数据类型
expression:常量的值
date:指定的日期表达式
varname:变量名
subscripts:下标(适用于数组变量)
type:数据类型
End可以终止所有正在运行的程序
name:枚举名称 membername:枚举成员名称 constantexpression:枚举成员值
语法说明
参数说明
Sub name [(arglist)]
[语句] [Exit Sub] [语句]
oldname:旧的文件名 newname:新的文件名
Exce疑难千寻千解
VBA入门与提高
附录2
VBA常用语句
语句名 On Error
语句说明 设定出错时的处理方式
Open
启用对文件的输入/输出
Option Base

EXCELVBA常用代码集

EXCELVBA常用代码集

EXCELVBA常用代码集1.显示活动工作簿名称MsgBox "当前活动工作簿是" & 2.保存活动工作簿Activeworkbook.Save3.保存所有打开的工作簿关闭EXCELFor Each W in Application.WorkbooksW.SaveNext WApplication.Quit4.将网格线设置为蓝色ActiveWindow.GridlineColorIndex = 55.将工作表sheet1隐藏Sheet1.Visible = xlSheetVeryHidden6.将工作表Shtte1显示Sheet1.Visible = xlSheetVisible7.单击某单元格,该单元格所在的行以蓝色背景填充,字体颜色为白色Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)If Target.Row >= 2 Then’第二行以下的区域On Error Resume Next[ChangColor_With1].FormatConditions.Delete = "ChangColor_With1"With [ChangColor_With1].FormatConditions.Delete.Add xlExpression, , "TRUE".Item(1).Interior.ColorIndex = 5.Item(1).Font.ColorIndex = 2End WithEnd IfEnd Sub8.使窗体在启动的时候自动最大化Private Sub UserForm_Initialize()Application.WindowState = xlMaximizedWith ApplicationMe.Top = .TopMe.Left = .LeftMe.Height = .HeightMe.Width = .WidthEnd WithEnd Sub9.不保存工作簿退出EXCELApplication.DisplayAlerts = FalseApplication.Quit10.使窗体的关闭按纽不好用Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)If CloseMode = vbformcontrdmenu ThenMsgBox "请用关闭按钮关闭窗口!!", 64, "提示"Cancel = TrueEnd IfEnd Sub11.使窗体在3秒后自动关闭Private Sub UserForm_Activate()Application.Wait Now + TimeValue("00:00:03")UserForm1.HideEnd Sub12.启动窗体的时候自动使Label1显示Sheet1工作表3列,8行的内容Private Sub UserForm_Activate()Label1.Caption = Sheets("sheet1").Cells(3, 8)End Sub13.让按纽CommandButton1在窗体上以不可用状态显示CommandButton1.Enabled = False14.让按纽Commandbutton1在窗体上以隐藏方式存在CommandButton10.Visible = False15.点击Commandbutton1按纽进入”工资”工作表Sheets("工资").Select16.在Textbox1中输入数据,窗体可显示出”工资”工作表中与输入内容关联的项Private Sub TextBox1_Change()For X = 1 To Application.CountA(Sheets("工资").Range("a:a")) If Sheets("工资").Cells(X, 1) = TextBox1.Text Then’在工资表第一列查找与Textbox1输入相符的项Label2.Caption = Sheets("工资").Cells(X, 2)’在Label2中显示Textbox1数据所在的第二列的数据Label7.Caption = Sheets("工资").Cells(X, 3)’在Label2中显示Textbox1数据所在的第三列的数据End IfNextEnd Sub17.使EXCEL启动的时候自动最小化/最大化Private Sub Workbook_Open()Application.WindowState = xlMinimized’最小化Application.WindowState = xlMaximized’最大化End Sub18.在Label25以数字的形式显示TextBox12×Label14的结果Label25.Caption = Val(TextBox12.Text) * Val(Label14.Caption)19.单选按纽名与Sheet6工作表名相同OptionButton6.Caption = 20.”登陆”窗体的显示,隐藏登陆.Show’显示登陆.Hide’隐藏21.使窗体的标题栏不显示(1)插入类模块” CFormChanger”代码如下:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As LongPrivate Const GWL_STYLE As Long = (-16)Private Const WS_CAPTION As Long = &HC00000Dim hWndForm As Long……………………………………………………………………………………………………………..Public Property Set Form(oForm As Object) '29If Val(Application.Version) < 9 ThenhWndForm = FindWindow("ThunderXFrame", oForm.Caption)ElsehWndForm = FindWindow("ThunderDFrame", oForm.Caption)End IfSetFormStyleEnd Property……………………………………………………………………………………………………………….Private Sub SetFormStyle()Dim iStyle As Long, hMenu As Long, hID As Long, iItems As IntegeriStyle = GetWindowLong(hWndForm, GWL_STYLE)iStyle = iStyle And Not WS_CAPTIONiStyle = iStyle Or WS_THICKFRAMESetWindowLong hWndForm, GWL_STYLE, iStyleDrawMenuBar hWndFormEnd Sub(2)在所在窗体代码里声明Dim oFormChanger As New CFormChanger(3).在窗体的Activate事件中插入代码Set oFormChanger.Form = MeMe.SpecialEffect = fmspecia1EffectRaised以上三步每一步都不可缺少,否则不能完成.22.单击某单元格,该单元格所在的行与列都以蓝色背景填充Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)If Target.Row >= 2 Then’第二行以下的所有列On Error Resume Next[ChangColor_With2].FormatConditions.Delete[ChangColor_With3].FormatConditions.Delete = "ChangColor_With2" = "ChangColor_With3"With [ChangColor_With2].FormatConditions.Delete.Add xlExpression, , "TRUE".Item(1).Interior.ColorIndex = 5End WithWith [ChangColor_With3].FormatConditions.Delete.Add xlExpression, , "TRUE".Item(1).Interior.ColorIndex = 5End WithEnd IfEnd Sub23.显示动态时间(1)插入窗体Userform1及Label1并在窗体声明中插入Option ExplicitPublic nextRun As Date(2)在窗体Activate事件中插入Showtime(3)在窗体QueryClose事件中插入Application.OnTime nextRun, "showtime", schedule:=False (4)插入模块Module1并输入Option ExplicitSub showtime()bel1 = NowUserForm1.RepaintDoEventsUserForm1.nextRun = Now + 1 / 86400Application.OnTime UserForm1.nextRun, "showtime" End Sub24.加载Combobox1选项ComboBox1.AddItem "收入型"ComboBox1.Additem “支出型”25.使Textbox1自动程输入状态显示(有光标闪动)TextBox1.SetFocus26.打开C盘目录Shell "explorer.exe C:\", 1。

ExcelVBA入门的基础语句

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选择当前活动单元格向右至第一个非空单元格。

vba在excel中的使用之vba语句解释

vba在excel中的使用之vba语句解释

vba在excel中的使用之vba语句解释*********************************************************************************(1) Set objExcel = CreateObject("Excel.Application")objExcel.Workbooks.Add ‘创建Excel工作簿(2) Application.ActivateMicrosoftApp xlMicrosoftWord '开启Word应用程序(3) Application.TemplatesPath ‘获取工作簿模板的位置(4) Application.Calculation = xlCalculationManual ‘设置工作簿手动计算Application.Calculation = xlCalculationAutomatic ‘工作簿自动计算(5) Worksheets(1).EnableCalculation = False ‘不对第一张工作表自动进行重算(6) Application.CalculateFull '重新计算所有打开的工作簿中的数据(7) Application.RecentFiles.Maximum = 5 '将最近使用的文档列表数设为5(8) Application.RecentFiles(4).Open '打开最近打开的文档中的第4个文档(9) Application.OnTime DateSerial(2006,6,6)+TimeValue(“16:16:16”),“BaoPo”‘在2006年6月6日的16:16:16开始运行BaoPo 过程(10) Application.Speech.Speak ("Hello" & erName) ‘播放声音,并使用用户的姓名问候用户(11) MsgBox Application.PathSeparator '获取"\"号(12) MsgBox Application.International(xlCountrySetting) '返回应用程序当前所在国家的设置信息(13) Application.AutoCorrect.AddReplacement "葛洲坝", "三峡" '自动将在工作表中进行输入的"葛洲坝"更正为"三峡"(14) Beep '让计算机发出声音(15) Err.Number ‘返回错误代码(16) MsgBox IMEStatus '获取输入法状态(17) Date = #6/6/2006#Time = #6:16:16 AM# '将系统时间更改为2006年6月6日上午6时16分16秒(18) Application.RollZoom = Not Application.RollZoom '切换是否能利用鼠标中间的滑轮放大/缩小工作表(19) Application.ShowWindowsInTaskba = True ‘显示任务栏中的窗口,即各工作簿占用各自的窗口(20) Application.DisplayScrollBars = True ‘显示窗口上的滚动条(21) Application.DisplayFormulaBar = Not Application.DisplayFormulaBar '切换是否显示编辑栏(22) Application.Dialogs(xlDialogPrint).Show ‘显示打印内容对话框(23) Application.MoveAfterReturnDirection = xlToRight '设置按Enter键后单元格的移动方向向右(24) Application.FindFile '显示打开对话框(25) ThisWorkbook.FollowHyperlink /vba123‘打开超链接文档(26) ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '将当前工作簿设置为只读(27) ActiveWorkbook.AddToFavorites '将当前工作簿添加到收藏夹文件夹中(28) ActiveSheet.CheckSpelling '在当前工作表中执行"拼写检查"(29) ActiveSheet.Protect userinterfaceonly:=True ‘保护当前工作表(30) ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName ‘在当前工作表的左侧页眉处打印出工作簿的完整路径和文件名(31) Worksheets("Sheet1").Range("A1:G37").Locked = FalseWorksheets("Sheet1").Protect'解除对工作表Sheet1中A1:G37区域单元格的锁定'以便当该工作表受保护时也可对这些单元格进行修改(32) Worksheets("Sheet1").PrintPreview '显示工作表sheet1的打印预览窗口(33) ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮(34) ActiveSheet.PageSetup.PrintGridlines = True '在打印预览中显示网格线ActiveSheet.PageSetup.PrintHeadings = True '在打印预览中显示行列编号(35) ActiveSheet.ShowDataForm '开启数据记录单(36) Worksheets("Sheet1").Columns("A").Replace _What:="SIN", Replacement:="COS", _SearchOrder:=xlByColumns, MatchCase:=True '将工作表sheet1中A列的SIN替换为COS(37) Rows(2).Delete '删除当前工作表中的第2行Columns(2).Delete '删除当前工作表中的第2列(38) ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell '在当前单元格左侧插入一条垂直分页符ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell '在当前单元格上方插入一条垂直分页符(39) ActiveWindow.ScrollRow = 14 '将当前工作表窗口滚动到第14行ActiveWindow.ScrollColumn = 13 '将当前工作表窗口滚动到第13列(40) ActiveWindow.Close '关闭当前窗口(41) ActiveWindow.Panes.Count '获取当前窗口中的窗格数(42) Worksheets("sheet1").Range("A1:D2").CreateNames Top:=True '将A2至D2的单元格名称设定为A1到D1单元格的内容(243) Application.AddCustomList listarray:=Range("A1:A8") '自定义当前工作表中单元格A1至A8中的内容为自动填充序列(44) Worksheets("sheet1").Range("A1:B2").CopyPicture xlScreen, xlBitmap '将单元格A1至B2的内容复制成屏幕快照(45) Selection.Hyperlinks.Delete ‘删除所选区域的所有链接Columns(1).Hyperlinks.Delete ‘删除第1列中所有的链接Rows(1).Hyperlinks.Delete ‘删除第1行中所有的链接Range("A1:Z30").Hyperlinks.Delete ‘删除指定范围所有的链接(46) ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, _Address:="C:\Windows\System32\Calc.exe", ScreenTip:="按下我,就会开启Windows计算器", TextToDisplay:="Windows计算器" '在活动单元格中设置开启Windows计算器链接(47) ActiveCell.Value = Shell("C:\Windows\System32\Calc.exe", vbNormalFocus) '开启Windows计算器(48) ActiveSheet.Rows(1).AutoFilter ‘打开自动筛选。

Excel VBA语句集(300句)

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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

参数说明 item:集合或数组中的元素 collection:集合或者数组
语句示例
疑难 27
counter:计数器变量 start:计数器变量起始值 end:计数器变量终止值 step:计数变量的步长
疑难 23
name:函数名称 arglist:参数列表 type:函数返回值数据类型
疑难 108
Get GoTo
附录2
VBA常用语句
语句名 Call ChDir ChDrive
语句说明 语法说明 将控制权传递给 Sub 或 Function 过程。即调用 [Call] name [argumentlist] 某个函数或者过程。 更改当前目录或文件夹 更改当前驱动器。 ChDir path ChDrive drive
疑难 45 疑难 93 Reset
line:行号或者行标签 path:文件夹或目录的路径 appname:程序名 section:注册表分支 key:注册表键名 setting:键值 filenumber:文件号 position:文件的位置
Resume RmDir "D:\TMP" SaveSetting "ExcelTip","Amulee", "IQ", 500
语法说明 For Each item In collection [语句] [Exit For] [语句] Next [item] For counter = start To end [Step step] [语句] [Exit For] [语句] Next [counter] Function name [(arglist)] [As type] [语句] [name = expression] [Exit Function] [语句] [name = expression] End Function Get [#]filenumber, [recnumber], varname ChDir path line If condition Then [statements ] [Else elsestatements ] 或者 If condition Then [语句] [ElseIf condition-n Then [elseif语句] [Else [else语句]] End If Input # filenumber, varlist Kill filename [Let] varname = expression Line Input [#]filenumber, varname Load object Mid(stringvar , start [, length ]) =
setting
Seek [#]filenumber , position Select Case testexpression [Case expressionlist-n [statements-n]] [Case Else [elsestatements]] End Select SendKeys string [, wait ] Set varname = expression
Close
关闭对使用Open 语句打开的文件的输入/输出
Close [filenumberlist ] Const constname [As type ] =
Const Date Dim
声明常量。 设置当前系统日期 声明变量
expression
Date = date Dim varname [([subscripts ])] [As type ] Do [{While | Until} 条件] [语句] [Exit Do] [语句] Loop End End Function End If End Property End Select End Sub End Type End With Enum name membername [= constantexpression] membername [= constantexpression] . . . End Enum Erase arraylist Error errornumber Exit Do Exit For Exit Function Exit Property Exit Sub FileCopy source , destination
参数说明 name:过程或者函数名 argumentlist:函数或者过程的参数列表 path:路径。ChDir会更改当前驱动器上的默认目录或文 件夹。 drive:指定现有驱动器的字符串表达式。如果您提供零 长度字符串(""),则当前驱动器不会发生更改。如果 drive参数是多字符字符串,则ChDrive仅使用第一个字 filenumber:是任何有效的文件编号。如果省略 filenumberlist,则由 Open 语句打开的所有活动文件 都将关闭。 constname:常量名 type:数据类型 expression:常量的值 date:指定的日期表达式 varname:变量名 subscripts:下标(适用于数组变量) type:数据类型
语句示例 疑难 60

On Error
疑难 34
Open
启用对文件的输入/输出
Open pathname For mode [Access access ] [lock ] As [#]filenumber [Len=reclength ]
疑难 99
Option Base Option Compare
语法说明 Name oldname As newname On Error GoTo line On Error Resume Next On Error GoTo 0
参数说明 oldname:旧的文件名 newname:新的文件名 line:行号或者行标签 pathname:文件名称 mode:打开方式。可以为Append、Binary、Input、 Output 或 Random access:访问的方式。可以为Read、Write 或 Read Write lock:组织其他程序打开操作文件,可以为Shared、 Lock Read、Lock Write 和 Lock Read Write filenumber:空闲的文件号 设置Dim和Redim语句声明数组下标的默认下限 Binary:二进制比较方式(区分大小写) Text:文本比较方式(不区分大小写) filenumber:文件号 outputlist:输出的文本内容。多个内容可以用逗号隔 filenumber:文件号 recnumber:文件的位置 varname:需要输出的内容 number:种子 varname:数组变量 subscipt:数组的下标 type:数组类型
分支结构语句 根据表达式的值,有条件地执行相应的语句
condition:条件判断表达式
疑难 21
Input # Kill Let Line Input # Load Mid MkDir
从打开的顺序文件中读取数据并将此数据分配给 变量 删除硬盘上的文件 将表达式的值赋给变量或属性 将打开的磁盘文件中的整行数据读取到String类 型的变量中 装载对象并不显示 将字符串指定位置的字符替换为其他字符 新建目录或文件夹
疑难 99 疑难 65 疑难 16 疑难 99 疑难 127 疑难 55
MkDir "D:\TMP"
Exce疑难千寻千解
VBA入门与提高
附录2
VBA常用语句
语句名 Name
语句说明 重命名磁盘文件、目录或文件夹。当原始文件名 与新文件名路径不一致时,可以实现文件的移动 并且重命名。 设定出错时的处理方式
将打开的磁盘文件中的数据读取到变量中。用于 读取二进制方式打开的文件。 无条件转到过程内的指定行
filenumber:文件号 recnumber:读取文件的位置 varname:接受从文件读取内容的变量名称 line:行号或者行标签
Get #1,,sVAR
疑难 23
If...Then...Els e
string
MkDir pathname
filenumber:文件号 varname:接受从文件读取内容的变量名称 filename:文件的完整路径,包括盘符、路径和文件名 。VBA中也支持适用通配符(*)和(?)进行批量的文件 varname:变量名 expression:需要赋值给变量的表达式 filenumber:文件号 varname:接受从文件读取内容的变量名称 object:需要装载的对象 stringvar:需要替换的字符串变量 start:替换字符的起始位置 length:替换字符的长度 string:用于替代的字符 pathname:路径名称
疑难 95 疑难 95 疑难 19 疑难 101
Put #1,,sVAR
Option Explicit 强制变量声明 Print # Put Randomize ReDim Reset Resume RmDir SaveSetting 向使用Open方法打开的文件输出文本 向使用Open方法打开的文件输出二进制内容 初始化随机数字生成器 重新定义动态数组的维度、尺寸和类型 关闭使用 Open 语句打开的所有磁盘文件 重新在出错语句处执行 删除磁盘目录或文件夹。 向注册表中写入内容 设置使用 Open 语句为打开的文件中的下一次读 取/写入操作设置位置。
varname
Randomize [number ] ReDim [Preserve] varname (subscripts ) [As type ] Reset Resume [0] Resume Next Resume line RmDir path SaveSetting appname , section, key,
复制一个文件
source:源文件的完整路径 destination:目标文件的完整路径
相关文档
最新文档