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单元格的字体为粗体、背景色为红色、边框为实线。

VBA拆分和合并单元格的技巧

VBA拆分和合并单元格的技巧

VBA拆分和合并单元格的技巧在 Excel 中使用 VBA(Visual Basic for Applications)拆分和合并单元格是一种非常有效的方式,可以帮助你处理大型数据表格。

通过拆分和合并单元格,你可以将数据按照特定的要求进行重新组织,并且可以提高数据的可读性和分析的准确性。

本文将介绍一些常用的 VBA 技巧,帮助你更好地完成拆分和合并单元格的任务。

拆分单元格是将一个合并单元格拆分成多个单元格的过程。

使用 VBA 可以轻松地实现此操作。

以下是拆分单元格的示例代码:```Sub SplitCells()Dim rng As RangeSet rng = Range("A1:B2")rng.UnMerge ' 取消单元格合并rng.Value = rng.Cells(1).Value ' 将第一个单元格的值赋给拆分后的单元格rng.ClearFormats ' 清除格式' 调整单元格的行高和列宽使其适应拆分结果rng.EntireRow.AutoFitrng.EntireColumn.AutoFitEnd Sub```以上代码中,我们首先定义了一个范围对象 `rng` 来表示要拆分的单元格区域。

然后,我们使用 `UnMerge` 方法取消单元格的合并,并将第一个单元格的值赋给拆分后的所有单元格。

接下来,我们使用 `ClearFormats` 方法清除拆分后的单元格的格式。

最后,我们使用 `EntireRow.AutoFit` 和`EntireColumn.AutoFit` 方法调整行高和列宽,以适应拆分后的单元格。

合并单元格是将多个单元格合并成一个单元格的过程。

同样地,我们可以使用 VBA 来实现此操作。

以下是合并单元格的示例代码:```Sub MergeCells()Dim rng As RangeSet rng = Range("A1:B2")rng.Merge ' 合并单元格rng.Cells(1).Value = rng.Value ' 将合并后的单元格的值赋给第一个单元格rng.HorizontalAlignment = xlCenter ' 设置水平对齐方式为居中rng.VerticalAlignment = xlCenter ' 设置垂直对齐方式为居中End Sub```以上代码中,我们同样定义了一个范围对象 `rng` 来表示要合并的单元格区域。

vba常用代码大全

vba常用代码大全

前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。

而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA 函数,以供大家学习参考。

第1.1例 ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII 值。

二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。

2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。

也可以写为 Dim myNum1 As Integer 。

Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。

Integer 的类型声明字符是百分比符号 (%)。

3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。

Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。

语法Asc(string)必要的 string(字符串)参数可以是任何有效的字符串表达式。

如果 string 中没有包含任何字符,则会产生运行时错误。

4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。

EXCEL常用VBA代码

EXCEL常用VBA代码

删除B列中字符串数值少于21的单元格所在的行Sub 删除行()r = Range("B65536").End(xlUp).Row '行数For h = r To 1 Step -1If Cells(h, 2) < 21 Then Cells(h, 2).EntireRow.DeleteNextEnd Sub-------------------------【工作表合并】将同一工作簿中的所有工作表合并到一个工作表中新建一个工作表,写入代码[在新建的工作表标签处右键查看代码(找不到的直接按一下alt+F11) 把下面的代码复制进去然后点上面的运行运行子程序即可]:Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name <> ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub*********************************************************代码这样写也行:Sub c()For i = Sheets.Count To 2 Step -1Sheets(i).SelectSheets(i).UsedRange.CopySheets(1).SelectCells(Cells(65000, 1).End(xlUp).Row + 1, 1).SelectActiveSheet.Paste'Sheets(i).DeleteNext iEnd Sub************************************************************把一个工作簿中的所有表单合并成一个表单,怎么去掉重复的表头、标题行?方法如下:Sub c()For i = Sheets.Count To 2 Step -1Sheets(i).UsedRange.Offset(1).Copy Sheets(1).Cells(65536, 1).End(xlUp).Offset(1) Next iEnd Sub说明:函数OFFSET(reference,rows,cols,height,width)以指定的引用为参照系,通过给定偏移量得到新的引用。

ExcelVBA常用代码总结1(精选合集)

ExcelVBA常用代码总结1(精选合集)

ExcelVBA常用代码总结1(精选合集)第一篇:Excel VBA常用代码总结1Excel VBA常用代码总结1•改变背景色Range(“A1”).Interior.ColorIndex = xlNone ColorIndex一览••改变文字颜色获取单元格Range(“A1”).Font.ColorIndex = 1 Cells(1, 2)Range(“H7”)•获取范围Range(Cells(2, 3), Cells(4, 5))Range(“a1:c3”)'用快捷记号引用单元格Worksheets(“Sheet1”).[A1:B5] •选中某sheet SetNewSheet = Sheets(“sheet1”)NewSheet.Select •选中或激活某单元格'“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。

'下面的代码首先选择A1:E10区域,同时激活D4单元格:Range(“a1:e10”).Select Range(“d4:e5”).Activate '而对于下面的代码:Range(“a1:e10”).Select Range(“f11:g15”).Activate '由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。

•获得文档的路径和文件名ActiveWorkbook.Path'路徑 '名稱ActiveWorkbook.FullName '路徑+名稱'或将ActiveWorkbook换成thisworkbook••••隐藏文档禁止屏幕更新禁止显示提示和警告消息文件夹做成Application.Visible = False Application.ScreenUpdating = False Application.DisplayAlerts = False strPath = “C:temp” MkDirstrPath ••状态栏文字表示双击单元格内容变换Application.StatusBar = “计算中”PrivateSubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)If(Target.Cells.Row>= 5AndTarget.Cells.Row<= 8)Then IfTarget.Cells.Value = “●”Then Target.Cells.Value = “" ElseTarget.Cells.Value = ”●“ EndIfCancel = True EndIf End Sub•文件夹选择框方法1SetobjShell = CreateObject(”Shell.Application“)SetobjFolder = objShell.BrowseForFolder(0, ”文件“, 0, 0)IfNotobjFolderIsNothingThen path= objFolder.self.Path&”“ endif SetobjFolder = Nothing SetobjShell = Nothing•文件夹选择框方法2(推荐)PublicFunctionChooseFolder()AsString DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFolderPicker)WithdlgOpen. InitialFileName = ThisWorkbook.path&”“ If.Show =-1Then ChooseFolder =.SelectedItems(1)EndIf EndWithSetdlgOpen = Nothing End Function'使用方法例:Dim path AsString path = ChooseFolder()If path <>”“Then MsgBox”open folder“ EndIf•文件选择框方法PublicFunctionChooseOneFile(OptionalTitleStrAsString= ”Please choose a file“, OptionalTypesDecAsString = ”*.*“, Optional ExtenAsString = ”*.*“)AsStringDimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFilePicker)WithdlgOpen.Title = TitleStr.Filters.Clear.Filters.AddTypesDec, Exten.AllowMultiSelect = False.InitialFileName = ThisWorkbook.Path If.Show =-1Then'.AllowMultiSelect = True ' For Each vrtSelectedItemIn.SelectedItems ' MsgBox ”Path name: “ &vrtSelectedItem ' Next vrtSelectedItemChooseOneFile =.SelectedItems(1)EndIf EndWithSetdlgOpen = Nothing End Function•某列到关键字为止循环方法1(假设关键字是end)SetCurrentCell = Range(”A1“)DoWhileCurrentCell.Value<>”end“ ……SetCurrentCell = CurrentCell.Offset(1, 0)Loop•某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRow DoWhileCells(i, 1)<>”“ ……i = i + 1 Loop•”For Each...Next 循环(知道确切边界)ForEach c InWorksheets(“Sheet1”).Range(“A1:D10”).CellsIfAbs(c.Value)<0.01Thenc.Value = 0 Next•“For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环ForEach c InActiveCell.CurrentRegion.Cells IfAbs(c.Value)<0.01Thenc.Value = 0 Next•某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1 DoWhileTrim(Cells(lonRow, 2).Value)<>”“ lonRow= lonRow + 1 LooplonRow11 = lonRow1164)比如i=A的时候,Asc(it >= num * 1000 DoEvents Loop End Sub'************************************************************** *使用方法: delay 3'3表示秒数•杀掉某程序执行的所有进程SubKillWord()Dim ProcessForEach Process InGetObject(”winmgmts:“).ExecQuery(”select * from Win32_Process where name='WINWORD.EXE'“)Process.Terminate(0)NextEnd Sub•监视某单元格的变化这里最需要注意的问题就是,如果在这个事件里对单元格进行改变,会继续出发此事件变成死循环。

VBA中常用的表格操作技巧总结

VBA中常用的表格操作技巧总结

VBA中常用的表格操作技巧总结VBA(Visual Basic for Applications)是一种用于在 Microsoft Office 应用程序中编写宏的编程语言。

在 Excel 中使用 VBA 可以快速、高效地操作工作表和数据。

本文将总结一些在 VBA 中常用的表格操作技巧,以帮助读者更好地利用 VBA 来处理 Excel 表格数据。

一、表格操作前的准备在进行任何表格操作之前,首先需要确认要操作的表格所在的工作簿和工作表。

可以使用以下 VBA 代码获取当前的工作簿和工作表:```Dim wb As WorkbookDim ws As WorksheetSet wb = ThisWorkbook '获取当前工作簿Set ws = wb.Worksheets("Sheet1") '获取名为 "Sheet1" 的工作表```二、表格的创建和删除在 VBA 中,可以使用以下代码创建新的表格:```Dim rng As RangeSet rng = ws.Range("A1:C5") '设置新表格的范围ws.ListObjects.Add(xlSrcRange, rng, xlYes).Name = "Table1" '创建名为 "Table1" 的表格```删除表格可以使用以下代码:```ws.ListObjects("Table1").Delete '删除名为 "Table1" 的表格```三、表格的排序VBA 提供了几种排序表格数据的方法,例如按照某一列升序或降序排序。

以下代码演示了对表格的第一列进行升序排序:```ws.ListObjects("Table1").Sort.SortFields.Clear '清除之前的排序设置ws.ListObjects("Table1").Sort.SortFields.AddKey:=ws.Range("Table1[[#All],[Column1]]"), SortOn:=xlSortOnValues, Order:=xlAscending '按照第一列进行升序排序ws.ListObjects("Table1").Sort.Apply '应用排序设置```四、筛选和过滤VBA 可以通过设定筛选条件来筛选和过滤表格数据。

常用Excel表格VBA代码32条

常用Excel表格VBA代码32条

001.批量创建工作表2020年4月17日4:04Sub NewSht()Dim shtActive As Worksheet, sht As WorksheetDim i As Long, strShtName As StringOn Error Resume Next '当代码出错时继续运行Set shtActive = ActiveSheetFor i = 2 To shtActive.Cells(Rows.Count, 1).End(xlUp).Row'单元格A1是标题,跳过,从第2行开始遍历工作表名称strShtName = shtActive.Cells(i, 1).Value'工作表名强制转换为字符串类型Set sht = Sheets(strShtName)'当工作簿不存在工作表Sheets(strShtName)时,这句代码会出错,然后…… If Err Then'如果代码出错,说明不存在工作表Sheets(t),则新建工作表Worksheets.Add , Sheets(Sheets.Count)'新建一个工作表,位置放在所有已存在工作表的后面 = strShtName'新建的工作表必然是活动工作表,为之命名Err.Clear'清除错误状态End IfNextshtActive.Activate'重新激活原工作表End Sub002.删除全部工作表2020年11月25日22:13Sub DelShet() '删除所有工作表Dim sht As WorksheetApplication.ScreenUpdating = False '关屏幕刷新Application.DisplayAlerts = False '关警告信息 On Error Resume NextFor Each sht In Worksheetssht.Delete '遍历工作表删除NextApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub003.提取工作表名字2020年11月25日22:14Sub GetShtByVba()Dim sht As Worksheet, k As LongApplication.ScreenUpdating = Falsek = 1Range("a:b").Clear '清空数据Range("a:a").NumberFormat = "@" '设置文本格式For Each sht In Worksheets '遍历工作表取表名k = k + 1Cells(k, 1) = NextRange("a1:b1") = Array("工作表名", "是否删除") Application.ScreenUpdating = TrueEnd Sub004.删除指定工作表2020年11月25日22:15Sub DelShtByVba()Dim sht As Worksheet, i As Long, rApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseOn Error Resume Nextr = Range("a1").CurrentRegion '数据装入数组rFor i = 2 To UBound(r) '遍历并删除工作表If r(i, 2) = "删除" Then Worksheets(CStr(r(i, 1))).Delete NextApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub005.生成带超链接的工作表目录2020年11月25日22:15Sub ml()Dim sht As Worksheet, i&, strShtName$Columns(1).ClearContents '清空A列数据Cells(1, 1) = "目录" '第一个单元格写入标题"目录"i = 1 '将i的初值设置为1.For Each sht In Worksheets '循环当前工作簿的每个工作表strShtName = If strShtName <> Then '如果sht的名称不是当前工作表的名称则开始在当前工作表建立超链接i = i + 1 '累加工作表数量ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _SubAddress:="'" & strShtName & "'!a1", TextToDisplay:=strShtName'建超链接End IfNextEnd Sub006.在各个分表创建返回总表的命令按钮2020年11月25日22:16Dim strShtName As StringSub Mybutton()Dim sht As Worksheet, btn As ButtonOn Error Resume NextFor Each sht In WorksheetsWith shtIf .Name <> strShtName Then.Shapes(strShtName).Delete'删除原有的名称为shtn的按钮,避免重复创建Set btn = .Buttons.Add(0, 0, 60, 30)'使用add方法在工作表中添加一个按钮控件,add方法语法如下:表达式.Add(left,right,width,height)'新建按钮,释义见小贴士With btn.Name = strShtName'命令按钮命名.Characters.Text = "返回总表"'按钮的文本内容.OnAction = "LinkTable"'指定按钮控件所执行的宏命令End WithEnd IfEnd WithNextSet btn = NothingEnd SubSub LinkTable()strShtName = "总表"'指定了返回总表的名字,可以根据实际需要修改为目标表的名称,比如“目录”。

excelvba编程的常用代码

excelvba编程的常用代码

强制声明变量Option Explicit说明:该语句必在任何过程之前出现在模块中。

声明常数用来代替文字值。

Const' 常数的默认状态是 Private。

Const My = 456' 声明 Public 常数。

Public Const MyString = "HELP"' 声明 Private Integer 常数。

Private Const MyInt As Integer = 5' 在同一行里声明多个常数。

Const MyStr = "Hello", MyDouble As Double =选择当前单元格所在区域在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。

只要将该段代码加入到你的模块中。

Sub My_SelectEnd sub返回当前单元格中数据删除前后空格后的值sub my_trimmsgbox Trimend sub单元格位移sub my_offset(0, 1).Select'当前单元格向左移动一格(0, -1).Select'当前单元格向右移动一格(1 , 0).Select'当前单元格向下移动一格(-1 , 0).Select'当前单元格向上移动一格end sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset 之下加一段代码 on error resume next注意以下代码都不再添加sub “代码名称” 和end sub请自己添加!给当前单元格赋值= "你好!!!"给指定单元格赋值例如:A1单元格内容设为"HELLO"Range("a1").value="hello"又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"1.sheets("sheet2").selectrange("a1").value="hello"或2.Sheets("sheet1").Range("a1").Value = "hello"说明:被选中,然后在将“HELLO"赋到A1单元格中。

Excel VBA代码 亲测可用

Excel VBA代码 亲测可用

1、打开显示登录窗体代码打开隐藏表格,显示登录窗体private Sub Workbook_open()Application.Visible = falseUserForm1.Showend Sub2、固定账号、密码登录窗体设置(1)制作窗体(2)登录验证Private Sub CommandButton1_Click() If TextBox1 = "admin" ThenIf TextBox2 <> 123 ThenMsgBox "密码错误"Exit SubElseMsgBox "登录成功”"Unload MeApplication.Visible = TrueSheet1.ActivateEnd IfElseMsgBox "账号不存在"End IfEnd Sub(3)退出按钮Private Sub CommandButton2_Click() Unload MeThisWorkbook.CloseEnd Sub(4)打开注册窗体Private Sub CommandButton3_Click() UserForm2.ShowEnd Sub(5)唯一关闭代码Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> 1 Then Cancel = TrueEnd Sub3、注册账号(1)制作注册账号窗体(2)注册代码Private Sub CommandButton1_Click()Dim zh As Range, zt As RangeIf TextBox1 = "" Then MsgBox "未填入账户": Exit SubIf TextBox2 <> TextBox3 Then MsgBox "密码不一致": Exit SubSet zh = Sheets("注册").Range("a:a").Find(TextBox1.Text, , , 1)If zh Is Nothing ThenSet zt = Sheets("注册").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) zt = TextBox1.Textzt.Offset(0, 1) = TextBox2.Textzt.Offset(0, 2) = NowMsgBox "注册成功"Unload MeElseMsgBox "账号已经存在,请更换其他账号"End IfEnd Sub4、查找筛选代码Private Sub TextBox1_Change()If Len(TextBox1.Value) = 0 ThenSheet1.AutoFilterMode = FalseElseIf Sheet1.AutoFilterMode = True ThenSheet1.AutoFilterMode = FalseEnd IfSheet1.Range("B7:P" & Rows.Count).AutoFilter _field:=4, Criteria1:="*" & TextBox1.Value & "*"End IfEnd Sub5、多账号密码验证代码Private Sub CommandButton1_Click()If Len(TextBox1) = 0 Then MsgBox "未输入账号": Exit SubDim zh As RangeSet zh = Sheets("注册").Range("a:a").Find(TextBox1.Text, , , 1) If Not zh Is Nothing ThenIf TextBox2.Text <> zh.Offset(0, 1) ThenMsgBox "密码错误"Exit SubElseMsgBox "登录成功"Unload MeApplication.Visible = TrueSheet1.ActivateEnd IfElseMsgBox "账号不存在"End IfEnd Sub6、默认打开第一个工作表Private Sub Workbook_Open()Sheet1.ActivateEnd Sub7、退出保存工作表Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.SaveEnd Sub。

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

(word完整版)Excel VBA常用技巧代码

(word完整版)Excel VBA常用技巧代码

1.删除重复行 (1)2. ActiveX控件的相关操作 (1)3. 单元格内容匹配 (2)4。

单元格填充公式 (3)5。

弹出打开对话框 (3)6. 操作文件夹下的所有工作簿 (3)7. 获取数据区域的最后一行和最后一列 (4)8. 获取列的字母顺序[A~IV] (4)9. 自定义函数返回数组并填充至单元格区域 (4)10. 绘制曲线图 (5)11. 单元格区域拷贝 (5)12. 操纵数据库(查、增、删、改) (6)13。

待定XX (6)1.删除重复行关键字:[a65536].End(xlUp).Row、Offset()、相关双层循环Sub RemoveDuplicate()'删除重复行For i = [a65536].End(xlUp)。

Row — 1 To 1 Step —1 '按倒叙删除For j = [a65536]。

End(xlUp).Row To i + 1 Step —1If Cells(i, 1)。

Value = Cells(j, 1).Value ThenRows(i)。

DeleteEnd IfNextNextEnd SubSub RemoveItem()'删除相邻重复,但不删除隔行重复Dim i As LongWith Range("A2”)’以A2为基准进行单元格偏移Do While .Offset(i, 0)If .Offset(i, 0)。

Value = .Offset(i — 1, 0)。

Value Then 。

Offset(i, 0).EntireRow.Delete i = i + 1LoopEnd WithEnd Sub2.ActiveX控件的相关操作关键字:ActiveX、OLEObjects、ActiveSheet。

OLEObjects遍历控件Dim c As ObjectFor Each c In ActiveSheet.OLEObjectsIf = ”ComboBox” & i Then’…………。

EXCEL VBA常用代码实战大全

EXCEL VBA常用代码实战大全

VBA常用技巧目录VBA常用技巧----------------------------------------------------------------- 1 第1章Range(单元格)对象------------------------------------------- 10 技巧1 单元格的引用方法-------------------------------------------- 10 1-1 使用Range属性 -------------------------------------------- 101-2 使用Cells属性 -------------------------------------------- 111-3 使用快捷记号 ---------------------------------------------- 111-4 使用Offset属性-------------------------------------------- 121-5 使用Resize属性-------------------------------------------- 131-6 使用Union方法 -------------------------------------------- 141-7 使用UsedRange属性----------------------------------------- 141-8 使用CurrentRegion属性------------------------------------- 15 技巧2 选定单元格区域的方法---------------------------------------- 15 2-1 使用Select方法-------------------------------------------- 152-2 使用Activate方法------------------------------------------ 162-3 使用Goto方法 --------------------------------------------- 17 技巧3 获得指定行、列中的最后一个非空单元格------------------------ 17 技巧4 定位单元格-------------------------------------------------- 20 技巧5 查找单元格-------------------------------------------------- 21 5-1 使用Find方法 --------------------------------------------- 215-2 使用Like运算符-------------------------------------------- 25 技巧6 替换单元格内字符串------------------------------------------ 26 技巧7 复制单元格区域---------------------------------------------- 27 技巧8 仅复制数值到另一区域---------------------------------------- 30 8-1 使用选择性粘贴 -------------------------------------------- 308-2 直接赋值的方法 -------------------------------------------- 31 技巧9 单元格自动进入编辑状态-------------------------------------- 32 技巧10 禁用单元格拖放功能----------------------------------------- 32 技巧11 单元格格式操作--------------------------------------------- 33 11-1 单元格字体格式设置---------------------------------------- 3311-2 设置单元格内部格式---------------------------------------- 3511-3 为单元格区域添加边框-------------------------------------- 3611-4 灵活设置单元格的行高列宽---------------------------------- 38 技巧12 单元格中的数据有效性--------------------------------------- 39 12-1 在单元格中建立数据有效性---------------------------------- 3912-2 判断单元格是否存在数据有效性------------------------------ 4112-3 动态的数据有效性------------------------------------------ 4112-4 自动展开数据有效性下拉列表-------------------------------- 43 技巧13 单元格中的公式--------------------------------------------- 4413-1 在单元格中写入公式---------------------------------------- 4413-2 检查单元格是否含有公式------------------------------------ 4513-3 判断单元格公式是否存在错误-------------------------------- 4613-4 取得单元格中公式的引用单元格------------------------------ 4713-5 将单元格中的公式转换为数值-------------------------------- 48 技巧14 单元格中的批注--------------------------------------------- 49 14-1 判断单元格是否存在批注------------------------------------ 4914-2 为单元格添加批注------------------------------------------ 5014-3 删除单元格中的批注---------------------------------------- 51 技巧15 合并单元格操作--------------------------------------------- 52 15-1 判断单元格区域是否存在合并单元格-------------------------- 5215-2 合并单元格时连接每个单元格的文本-------------------------- 5315-3 合并内容相同的连续单元格---------------------------------- 5415-4 取消合并单元格时在每个单元格中保留内容-------------------- 56 技巧16 高亮显示单元格区域----------------------------------------- 57 技巧17 双击被保护单元格时不显示提示消息框------------------------- 58 技巧18 重新计算工作表指定区域------------------------------------- 60 技巧19 录入数据后单元格自动保护----------------------------------- 60 技巧20 工作表事件Target参数的使用方法---------------------------- 62 20-1 使用单元格的Address 属性--------------------------------- 6220-2 使用Column属性和Row属性--------------------------------- 6320-3 使用Intersect方法---------------------------------------- 63 第2章Worksheet(工作表)对象--------------------------------------- 65 技巧21 引用工作表的方式------------------------------------------- 65 21-1 使用工作表的名称------------------------------------------ 6521-2 使用工作表的索引号---------------------------------------- 6521-3 使用工作表的代码名称-------------------------------------- 6621-4 使用ActiveSheet属性引用活动工作表------------------------ 66 技巧22 选择工作表的方法------------------------------------------- 67 技巧23 遍历工作表的方法------------------------------------------- 68 23-1 使用For...Next 语句-------------------------------------- 6823-2 使用For Each...Next 语句--------------------------------- 70 技巧24 在工作表中上下翻页----------------------------------------- 71 技巧25 工作表的添加与删除----------------------------------------- 72 技巧26 禁止删除指定工作表----------------------------------------- 76 技巧27 自动建立工作表目录----------------------------------------- 78 技巧28 工作表的深度隐藏------------------------------------------- 80 技巧29 防止更改工作表的名称--------------------------------------- 82 技巧30 工作表中一次插入多行--------------------------------------- 83 技巧31 删除工作表中的空行----------------------------------------- 84 技巧32 删除工作表的重复行----------------------------------------- 86 技巧33 定位删除特定内容所在的行----------------------------------- 88 技巧34 判断是否选中整行------------------------------------------- 89 技巧35 限制工作表的滚动区域--------------------------------------- 90技巧36 复制自动筛选后的数据区域----------------------------------- 91 技巧37 使用高级筛选获得不重复记录--------------------------------- 93 技巧38 工作表的保护与解除保护------------------------------------- 94 技巧39 奇偶页打印------------------------------------------------- 97 第3章Wordbook(工作簿)对象---------------------------------------- 99 技巧40 工作簿的引用方法------------------------------------------- 99 40-1 使用工作簿的名称------------------------------------------ 9940-2 使用工作簿的索引号---------------------------------------- 9940-3 使用ThisWorkbook ---------------------------------------- 10040-4 使用ActiveWorkbook -------------------------------------- 101 技巧41 新建工作簿文件-------------------------------------------- 101 技巧42 打开指定的工作簿------------------------------------------ 103 技巧43 判断指定工作簿是否打开------------------------------------ 106 43-1 遍历Workbooks集合方法----------------------------------- 10643-2 错误处理方法 -------------------------------------------- 106 技巧44 禁用宏则关闭工作簿---------------------------------------- 107 技巧45 关闭工作簿不显示保存对话框-------------------------------- 111 45-1 使用Close方法关闭工作簿--------------------------------- 11145-2 单击工作簿关闭按钮关闭工作簿----------------------------- 113 技巧46 禁用工作簿的关闭按钮-------------------------------------- 113 技巧47 保存工作簿的方法------------------------------------------ 115 47-1 使用Save方法 ------------------------------------------- 11547-2 直接保存为另一文件名------------------------------------- 11547-3 保存工作簿副本 ------------------------------------------ 115 技巧48 保存指定工作表为工作簿文件-------------------------------- 116 技巧49 打印预览时不触发事件-------------------------------------- 118 技巧50 设置工作簿文档属性信息------------------------------------ 120 技巧51 不打开工作簿取得其他工作簿数据---------------------------- 121 51-1 使用公式 ------------------------------------------------ 12151-2 使用GetObject函数--------------------------------------- 12251-3 隐藏Application对象------------------------------------- 12351-4 使用ExecuteExcel4Macro方法------------------------------ 12451-5 使用SQL连接 -------------------------------------------- 125 技巧52 返回窗口的可视区域地址------------------------------------ 126 第4章Shape(图形)、Chart(图表)对象------------------------------ 128 技巧53 在工作表中添加图形---------------------------------------- 128 技巧54 导出工作表中的图片---------------------------------------- 133 技巧55 在工作表中添加艺术字-------------------------------------- 135 技巧56 遍历工作表中的图形---------------------------------------- 137 技巧57 移动、旋转图片-------------------------------------------- 139 技巧58 工作表中自动插入图片-------------------------------------- 140 技巧59 固定工作表中图形的位置------------------------------------ 143 技巧60 使用VBA自动生成图表-------------------------------------- 145 技巧61 使用独立窗口显示图表-------------------------------------- 149技巧62 导出工作表中的图表---------------------------------------- 150 技巧63 多图表制作------------------------------------------------ 151 第5章Application对象--------------------------------------------- 155 技巧64 取得Excel版本信息---------------------------------------- 155 技巧65 取得当前用户名称------------------------------------------ 156 技巧66 Excel中的“定时器”--------------------------------------- 156 技巧67 设置活动打印机的名称-------------------------------------- 158 技巧68 屏蔽、改变组合键的功能------------------------------------ 159 技巧69 设置Excel窗口标题栏-------------------------------------- 160 技巧70 自定义Excel状态栏---------------------------------------- 161 技巧71 灵活退出Excel -------------------------------------------- 162 技巧72 隐藏Excel主窗口------------------------------------------ 163 72-1 设置Application对象的Visible属性----------------------- 16372-2 将窗口移出屏幕 ------------------------------------------ 16472-3 设置工作簿作为加载宏运行--------------------------------- 165 第6章使用对话框--------------------------------------------------- 167 技巧73 使用Msgbox函数------------------------------------------- 167 73-1 显示简单的提示信息--------------------------------------- 16773-2 定制个性化的消息框--------------------------------------- 16873-3 获得消息框的返回值--------------------------------------- 16973-4 在消息框中排版 ------------------------------------------ 17173-5 对齐消息框中显示的信息----------------------------------- 172 技巧74 自动关闭的消息框------------------------------------------ 174 74-1 使用WshShell.Popup方法显示消息框------------------------ 17474-2 使用API函数显示消息框----------------------------------- 175 技巧75 使用InputBox函数----------------------------------------- 176 75-1 简单的数据输入 ------------------------------------------ 17675-2 使用对话框输入密码--------------------------------------- 178 技巧76 使用InputBox方法----------------------------------------- 180 76-1 输入指定类型的数据--------------------------------------- 18076-2 获得单元格区域地址--------------------------------------- 182 技巧77 内置对话框------------------------------------------------ 183 77-1 调用内置的对话框----------------------------------------- 18377-2 获取选定文件的文件名------------------------------------- 18677-3 使用“另存为”对话框------------------------------------- 188 技巧78 调用操作系统“关于”对话框-------------------------------- 190 第7章菜单和工具栏------------------------------------------------- 192 技巧79 在菜单中添加菜单项---------------------------------------- 192 技巧80 在菜单栏指定位置添加菜单---------------------------------- 195 技巧81 屏蔽和删除工作表菜单-------------------------------------- 197 技巧82 改变系统菜单的操作---------------------------------------- 198 技巧83 定制自己的系统菜单---------------------------------------- 199 技巧84 改变菜单按钮图标------------------------------------------ 205 技巧85 右键快捷菜单增加菜单项------------------------------------ 206技巧86 自定义右键快捷菜单---------------------------------------- 207 技巧87 使用右键菜单制作数据有效性-------------------------------- 210 技巧88 禁用工作表右键菜单---------------------------------------- 212 技巧89 创建自定义工具栏------------------------------------------ 213 技巧90 自定义工具栏按钮图标-------------------------------------- 216 技巧91 自定义工作簿图标------------------------------------------ 217 技巧92 移除工作表的最小最大化和关闭按钮-------------------------- 218 技巧93 在工具栏上添加下拉列表框---------------------------------- 219 技巧94 屏蔽工作表的复制功能-------------------------------------- 221 技巧95 禁用工具栏的自定义---------------------------------------- 222 技巧96 屏蔽所有的命令栏------------------------------------------ 225 技巧97 恢复Excel的命令栏---------------------------------------- 226 第8章控件与用户窗体----------------------------------------------- 228 技巧98 限制文本框的输入------------------------------------------ 228 技巧99 文本框添加右键快捷菜单------------------------------------ 230 技巧100 文本框回车自动输入--------------------------------------- 234 技巧101 自动选择文本框内容--------------------------------------- 235 技巧102 设置文本框数据格式--------------------------------------- 236 技巧103 限制文本框的输入长度------------------------------------- 238 技巧104 将光标返回文本框中--------------------------------------- 239 技巧105 文本框的自动换行----------------------------------------- 241 技巧106 多个文本框数据相加--------------------------------------- 243 技巧107 控件跟随活动单元格--------------------------------------- 244 技巧108 高亮显示按钮--------------------------------------------- 245 技巧109 组合框和列表框添加列表项的方法--------------------------- 247 109-1 使用RowSource属性添加列表项---------------------------- 247109-2 使用List属性添加列表项--------------------------------- 248109-3 使用AddItem方法添加列表项------------------------------ 249 技巧110 去除列表框数据源的重复值和空格--------------------------- 251 技巧111 移动列表框条目------------------------------------------- 253 技巧112 允许多项选择的列表框------------------------------------- 256 技巧113 多列组合框和列表框的设置--------------------------------- 259 113-1 多列组合框和列表框添加列表项---------------------------- 259113-2 多列列表框写入工作表------------------------------------ 261 技巧114 输入时逐步提示信息--------------------------------------- 263 技巧115 二级组合框----------------------------------------------- 270 技巧116 使用DTP控件输入日期------------------------------------- 272 技巧117 使用RefEdit控件选择区域--------------------------------- 275 技巧118 如何注册控件--------------------------------------------- 276 技巧119 遍历控件的方法------------------------------------------- 279 119-1 使用名称中的变量遍历控件-------------------------------- 279119-2 使用对象类型遍历控件------------------------------------ 281119-3 使用程序标识符遍历控件---------------------------------- 282119-4 使用名称中的变量遍历图形-------------------------------- 283119-5 使用FormControlType属性遍历图形------------------------ 284 技巧120 使微调框最小变动量小于1 --------------------------------- 285 技巧121 不打印工作表中的控件------------------------------------- 287 121-1 设置控件格式-------------------------------------------- 287 121-2 设置控件的printobjcet属性------------------------------ 289 技巧122 在框架中使用滚动条--------------------------------------- 289 技巧123 使用多页控件--------------------------------------------- 291 技巧124 标签文字垂直居中对齐------------------------------------- 293 技巧125 使用TabStrip控件---------------------------------------- 295 技巧126 显示GIF动画图片----------------------------------------- 297 技巧127 播放Flash文件------------------------------------------- 300 技巧128 在工作表中添加窗体控件----------------------------------- 302 128-1 使用AddFormControl方法--------------------------------- 303 128-2 使用Add方法-------------------------------------------- 305 技巧129 在工作表中添加ActiveX控件------------------------------- 307 129-1 使用Add方法-------------------------------------------- 308 129-2 使用AddOLEObject方法----------------------------------- 310 技巧130 使用spreadsheet控件------------------------------------- 311 技巧131 使用Listview控件---------------------------------------- 314 131-1 使用Listview控件显示数据列表--------------------------- 314 131-2 在Listview控件中使用复选框----------------------------- 317 131-3 调整Listview控件的行距--------------------------------- 319 131-4 在Listview控件中排序----------------------------------- 322 131-5 Listview控件的图标设置---------------------------------- 323 技巧132 调用非模式窗体------------------------------------------- 326 技巧133 进度条的制作--------------------------------------------- 328 133-1 使用进度条控件------------------------------------------ 328 133-2 使用标签控件-------------------------------------------- 330 技巧134 使用TreeView控件显示层次-------------------------------- 333 技巧135 用户窗体添加图标----------------------------------------- 337 技巧136 用户窗体添加最大最小化按纽------------------------------- 339 技巧137 禁用窗体标题栏的关闭按钮--------------------------------- 340 技巧138 屏蔽窗体标题栏的关闭按钮--------------------------------- 341 技巧139 无标题栏和边框的窗体------------------------------------- 343 技巧140 制作年月选择窗体----------------------------------------- 344 技巧141 自定义窗体中的鼠标指针类型------------------------------- 347 技巧142 调整窗体的显示位置--------------------------------------- 348 技巧143 由鼠标确定窗体显示位置----------------------------------- 350 技巧144 用户窗体的打印------------------------------------------- 351 技巧145 使用自定义颜色设置窗体颜色------------------------------- 353 技巧146 在窗体中显示图表----------------------------------------- 354 146-1 使用Export方法----------------------------------------- 354 146-2 使用API函数-------------------------------------------- 356 技巧147 窗体运行时调整控件大小----------------------------------- 357技巧148 在用户窗体上添加菜单------------------------------------- 360 技巧149 在用户窗体上添加工具栏----------------------------------- 364 技巧150 使用代码添加窗体及控件----------------------------------- 369 技巧151 用户窗体的全屏显示--------------------------------------- 375 151-1 设置用户窗体为应用程序的大小---------------------------- 375151-2 根据屏幕分辨率进行设置---------------------------------- 376 技巧152 在用户窗体上添加状态栏----------------------------------- 377 第9章函数的使用--------------------------------------------------- 381 技巧153 调用工作表函数求和--------------------------------------- 381 技巧154 查找最大、最小值----------------------------------------- 381 技巧155 不重复值的录入------------------------------------------- 383 技巧156 获得当月的最后一天--------------------------------------- 385 技巧157 四舍五入运算--------------------------------------------- 386 157-1 极小值修正法-------------------------------------------- 386157-2 调用工作表函数法---------------------------------------- 387 技巧158 使用字符串函数------------------------------------------- 387 技巧159 使用日期函数--------------------------------------------- 389 技巧160 判断是否为数值------------------------------------------- 393 技巧161 格式化数值、日期和时间----------------------------------- 394 技巧162 个人所得税自定义函数------------------------------------- 396 技巧163 人民币大写函数------------------------------------------- 398 技巧164 列号转换为列标------------------------------------------- 400 技巧165 判断工作表是否为空表------------------------------------- 401 技巧166 查找指定工作表------------------------------------------- 402 技巧167 查找指定工作簿是否打开----------------------------------- 404 技巧168 取得应用程序的安装路径----------------------------------- 404 技巧169 数组的使用----------------------------------------------- 406 169-1 代码运行时创建数组-------------------------------------- 406169-2 文本转换为数组------------------------------------------ 407169-3 使用动态数组去除重复值---------------------------------- 409 第10章文件操作----------------------------------------------------- 412 技巧170 导入文本文件--------------------------------------------- 412 170-1 使用查询表导入------------------------------------------ 412170-2 使用Open 语句导入-------------------------------------- 413170-3 使用OpenText方法--------------------------------------- 415 技巧171 将数据写入文本文件--------------------------------------- 416 171-1 使用Print # 语句--------------------------------------- 416171-2 另存为文本文件------------------------------------------ 418 技巧172 文件修改的日期和时间------------------------------------- 419 技巧173 查找文件或文件夹----------------------------------------- 420 技巧174 获得当前文件夹的名称------------------------------------- 422 技巧175 创建和删除文件夹----------------------------------------- 422 技巧176 重命名文件或文件夹--------------------------------------- 423 技巧177 复制指定的文件------------------------------------------- 424技巧178 删除指定的文件------------------------------------------- 425 技巧179 搜索特定的文件------------------------------------------- 426 技巧180 使用WSH处理文件----------------------------------------- 428 180-1 获取文件信息-------------------------------------------- 428180-2 查找文件 ----------------------------------------------- 430180-3 移动文件 ----------------------------------------------- 431180-4 复制文件 ----------------------------------------------- 431180-5 删除文件 ----------------------------------------------- 432180-6 创建文件夹 --------------------------------------------- 433180-7 复制文件夹 --------------------------------------------- 434180-8 移动文件夹 --------------------------------------------- 435180-9 删除文件夹 --------------------------------------------- 435180-10 导入文本文件------------------------------------------- 436180-11 创建文本文件------------------------------------------- 438 第11章其他应用----------------------------------------------------- 441 技巧181 取得电脑名称--------------------------------------------- 441 技巧182 取得逻辑盘序列号----------------------------------------- 442 技巧183 使用API取得硬盘信息------------------------------------- 443 技巧184 使用数字签名--------------------------------------------- 444 技巧185 暂停代码的运行------------------------------------------- 449 技巧186 定时关机------------------------------------------------- 450 技巧187 打开指定的网页------------------------------------------- 451 技巧188 VBE的操作------------------------------------------------ 452 188-1 添加模块和过程------------------------------------------ 452188-2 建立事件过程-------------------------------------------- 454188-3 模块的导入与导出---------------------------------------- 456188-4 删除宏代码 --------------------------------------------- 457 技巧189 保护VBA代码--------------------------------------------- 459 189-1 设置工程密码-------------------------------------------- 459189-2 设置“工程不可查看”------------------------------------ 460 技巧190 优化代码------------------------------------------------- 462 190-1 关闭屏幕刷新-------------------------------------------- 462190-2 使用工作表函数------------------------------------------ 464190-3 使用更快的单元格操作方法-------------------------------- 465190-4 使用With语句引用对象----------------------------------- 466190-5 少用激活或选择语句-------------------------------------- 468 技巧191 取得文件的基本名称--------------------------------------- 469 技巧192 防止用户中断代码运行------------------------------------- 470 技巧193 加班费计算表--------------------------------------------- 472 技巧194 制作发放条----------------------------------------------- 498 技巧195 费用统计表----------------------------------------------- 501 技巧196 职工花名册----------------------------------------------- 516 技巧197 收据系统------------------------------------------------- 529 技巧198 职工考勤系统--------------------------------------------- 567第1章Range(单元格)对象Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel 内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性。

Excel VBA与常用控件的使用技巧与应用

Excel VBA与常用控件的使用技巧与应用

Excel VBA与常用控件的使用技巧与应用在Excel VBA宏编程中,控件的使用是非常常见且重要的一部分。

通过使用控件,我们可以在Excel中创建功能强大且交互性强的用户界面。

本文将介绍Excel VBA中常见控件的使用技巧与应用。

1. 文本框(TextBox)控件文本框控件可以用于用户输入文本或数字。

我们可以使用VBA代码来获取或设置文本框中的值。

下面是一个示例:```Sub GetTextBoxValue()Dim txtValue As StringtxtValue = UserForm1.TextBox1.ValueMsgBox "文本框的值为:" & txtValueEnd Sub```在上面的示例中,我们通过UserForm1.TextBox1.Value获取了文本框的值,并通过消息框将其显示出来。

2. 按钮(CommandButton)控件按钮控件用于触发特定的操作。

我们可以使用VBA代码来响应按钮的点击事件。

下面是一个示例:```Sub ButtonClick()MsgBox "按钮被点击了!"End Sub```在上面的示例中,当按钮被点击时,会触发ButtonClick子过程,并通过消息框显示出一条信息。

3. 列表框(ListBox)控件列表框控件用于显示一个或多个选项供用户选择。

我们可以使用VBA代码来获取或设置列表框中选中项的值。

下面是一个示例:```Sub GetSelectedListBoxItem()Dim selectedItem As StringWith UserForm1.ListBox1If .ListIndex <> -1 ThenselectedItem = .ValueMsgBox "选中的项为:" & selectedItemElseMsgBox "请选择一项!"End IfEnd WithEnd Sub```在上面的示例中,我们通过UserForm1.ListBox1.Value获取了选中项的值,并通过消息框将其显示出来。

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。

VBA编程中的常用代码

VBA编程中的常用代码

VBA编程中的常用代码VBA(Visual Basic for Applications)是一种编程语言,用于在Microsoft Office应用程序中编写自定义宏和功能。

以下是一些在VBA 编程中常常用到的代码片段和技巧。

1. Excel VBA:打开和关闭工作簿这段代码演示了如何在Excel VBA中打开和关闭一个工作簿。

```vbaSub OpenAndCloseWorkbookDim wb As WorkbookSet wb = Workbooks.Open("C:\Path\To\Your\File.xlsx")'在这里执行你的代码wb.Close SaveChanges:=FalseEnd Sub```2. Excel VBA:遍历工作表下面的代码展示了如何遍历一个Excel工作簿中的所有工作表。

```vbaSub LoopThroughWorksheetsDim ws As WorksheetFor Each ws In ThisWorkbook.Worksheets'在这里执行你的代码Next wsEnd Sub```3. Excel VBA:在工作表中查找特定值以下代码展示了如何在一个工作表中查找特定值并返回它的位置。

```vbaFunction FindValue(ByRef rng As Range, ByVal searchValue As String) As RangeDim cell As RangeSet FindValue = NothingFor Each cell In rngIf cell.Value = searchValue ThenSet FindValue = cellExit FunctionEnd IfNext cellEnd Function```4. Word VBA:插入文本以下代码演示了如何在Word文档中插入文本。

Excel VBA编程实例

Excel VBA编程实例

Excel VBA编程实例Excel VBA(Visual Basic for Applications)是一种用于自动化Excel应用程序的编程语言。

通过编写VBA代码,我们可以在Excel中创建宏、自定义功能和自动化任务。

本文将介绍一些Excel VBA编程实例,以帮助读者更好地理解并应用VBA编程技巧。

1. 自动筛选数据在Excel中,我们经常需要根据特定条件筛选数据。

通过VBA编程,我们可以实现自动筛选数据的功能。

首先,我们需要打开Excel并进入VBA编辑器。

然后,编写以下代码:```vbaSub AutoFilterData()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Sheet1") '将"Sheet1"替换为你的工作表名称With ws.Range("A1:D1").AutoFilter '将"A1:D1"替换为你要筛选的范围.Range("A1:D1").AutoFilter Field:=1, Criteria1:="Apple" '将1替换为你要筛选的列号,"Apple"替换为你要筛选的条件End WithEnd Sub```运行以上代码后,Excel将自动筛选出满足条件为“Apple”的数据。

2. 创建自动化报告Excel中的报告制作通常是非常繁琐的,但通过VBA编程,我们可以自动化这个过程。

以下代码演示了如何创建一个简单的销售报告:```vbaSub CreateReport()Dim ws As WorksheetDim reportWs As WorksheetDim lastRow As LongSet ws = ThisWorkbook.Sheets("Data") '将"Data"替换为包含数据的工作表名称Set reportWs = ThisWorkbook.Sheets.Add '添加一个新的工作表作为报告'设置报告表头reportWs.Range("A1") = "日期"reportWs.Range("B1") = "销售额"'计算数据行数lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row'填充数据reportWs.Range("A2:A" & lastRow).Value = ws.Range("A2:A" & lastRow).ValuereportWs.Range("B2:B" & lastRow).Formula = "=C2*D2" '假设C列为单价,D列为数量'添加图表Dim chartObj As ChartObjectSet chartObj = reportWs.ChartObjects.Add(110, 20, 300, 200)With chartObj.Chart.SetSourceData Source:=reportWs.Range("A1:B" & lastRow).ChartType = xlColumnClusteredEnd WithEnd Sub```运行以上代码后,Excel将创建一个新工作表作为报告,并将销售数据以及相应的图表添加到报告中。

Excel VBA 常用代码50例

Excel VBA 常用代码50例

Excel VBA 常用代码50例001。

用命令按扭打印一个sheet1中B2:M30区域中的内容?我想在Sheet2中制件一个命令按扭, 打印表Sheet1中的[B2:M30] 区域中的内容?解答:可以将打印区域设为b2:m30,然后打印,如:sheets("sheet1").printarea="b2:m30"sheets("sheet1").printout随手写的,你可以试试看。

最简单的方法是:你先录制宏,在录制宏过程中,跑到页面设置里面,把打印范围设置到你想要的范围。

然后退出,停止录制宏,你就可以得到一些代码!002。

能否对一列中的文字统一去掉最后一个字?这些文字不统一,有些字数多,有些字数少。

如何处理?我用{"&-}不行解答:=REPLACE(A1,LEN(A1),1," ")(在过渡列进行)003.能否根据单元格数值自动标记序号?各位大佬,一工作表有两列,“序号”及“金额”,能否将金额不等于0的行自动标上序号呢?如无现成的函数,应怎样设置?解答:Dim xuhao As Integerxuhao = 1Range("b2").SelectDo While Selection <> ""If Selection <> 0 ThenActiveCell.Previous.Value = xuhaoxuhao = xuhao + 1End IfActiveCell.Offset(1, 0).Range("a1").SelectLoop004.求教自定义函数查询了一些自定义函数的例子都是单变量的。

自定义函数能否建立“(As Range) As Interger”的函数,应该可以的,请各位大师赐教!请以“∑x2”为例,万分感谢!(该用"For Each ...Next",就是还不知道如何引用Range中的每个值,请高手指点。

办公软件学习技巧:Excel VBA常用代码100句

办公软件学习技巧: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中的内容。

EXCELVBA20个有用的ExcelVBA代码

EXCELVBA20个有用的ExcelVBA代码

EXCELVBA20个有用的ExcelVBA代码1.显示多个隐藏的工作表如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表。

下面的代码,可以让你一次显示所有的工作表Sub UnhideAllWoksheets()Dim ws As WorksheetFor Each ws In ActiveWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsEnd Sub2.隐藏除了活动工作表外的所有工作表如果你做的报表,希望隐藏除了报表工作表以外的所有工作表,则可以用一下代码来实现:Sub HideAllExcetActiveSheet()Dim ws As WorksheetFor Each ws In ThisWorkbook.WorksheetsIf <> Thenws.Visible = xlSheetHiddenEnd ifNext wsEnd Sub3.用VBA代码按字母的顺序对工作表进行排序如果你有一个包含多个工作表的工作簿,并且希望按字母对工作表进行排序,那么下面的代码,可以派上用场。

Sub SortSheetsTabName()Application.ScreenUpdating = FalseDim ShCount As Integer, i As Integer, j As IntegerShCount = Sheets.CountFor i = 1 To ShCount - 1For j = i + 1 To ShCountIf Sheets(j).Name < Sheets(i).Name ThenSheets(j).Move before:=Sheets(i)End IfNext jNext iApplication.ScreenUpdating = TrueEnd Sub4.一次性保护所有的工作表如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。

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

多个工作薄合并成同一个工作薄,如何合并?
多人填一个同样的工作薄,形成了多个工作薄。

如何让几人填了一部分的工作薄合并成终稿。

Sub 汇总()
Dim mypath As String, myname As String, Dname As String, sh As Workbook, copyrow As Integer
Set sh = ThisWorkbook
mypath = ThisWorkbook.Path
myname =
Dname = Dir(mypath & "\*.xls")
Application.ScreenUpdating = False
Do While Dname <> ""
If Dname <> myname Then
copyrow = 1
With GetObject(mypath & "\" & Dname)
For i = 1 To .Worksheets.Count
If .Sheets(i).Cells(5, 3) <> "" Then
.Sheets(i).Rows("1:"
& .Sheets(i).UsedRange.Rows.Count).Copy sh.Sheets(i).Cells(copyrow, 1)
End If
Next
.Close False
End With
End If
Dname = Dir
Loop
Application.ScreenUpdating = True
MsgBox "OK!"
End Sub
合并工作簿:将其他工作簿的全部表合并到本工作
Sub 合并工作簿()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move After:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Sub 合并工作表()
For Each st In Worksheets
If <> Then edRange.Offset(1, 0).Copy [a65536].End(xlUp).Offset(1, 0)
Next
End Sub
Sub 删除其他工作表()
Dim arr()
A =
icount = Sheets.Count
For i = 1 To icount
t = Sheets(i).Name
If t <> A Then
r = r + 1
ReDim Preserve arr(1 To r)
arr(r) = t
End If
Next
Sheets(arr).Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
End Sub
Sub 清空本表()
Cells.Select
Selection.ClearContents
Range("A1").Select
End Sub
Sub 导出()
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Application.CutCopyMode = False
ChDir "C:\Documents and Settings\y\桌面"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\y\桌面\新表.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
Range("G4").Select
Application.DisplayAlerts = 0
Application.Quit
End Sub
将文件夹内的工作薄的sheet1的内容合并到当前工作薄
Sub test()
Dim w As Workbook, sh As Worksheet, MyPath As String, MyName As String Application.ScreenUpdating = False
Set d = CreateObject("scripting.dictionary")
For Each sh In Sheets
d() = ""
Next
MyPath = ThisWorkbook.Path & "\"
MyName = Dir(MyPath & "*.xls")
Do While MyName <> ""
If MyName <> Then
With ThisWorkbook
Set w = CreateObject(.Path & "\" & MyName)
For Each sh In w.Worksheets
If d.Exists() Then _
edRange.Offset(1).Copy .Worksheets().[a65536].End(3)(2, 1) Next
Windows().Visible = True
w.Close False
End With
End If
MyName = Dir
Loop
Set d = Nothing
Set w = Nothing
ActiveWorkbook.RemovePersonalInformation = False
Application.ScreenUpdating = True
MsgBox "数据处理完毕。

" End Sub。

相关文档
最新文档