Excel VBA常用代码总结1

合集下载

EXCEL实用VBA宏代码

EXCEL实用VBA宏代码

1 删除内容重复的行Sub DeleteRow()' 删除内容重复的行Dim R As IntegerDim i As IntegerWith Sheet1R = .[a65536].End(xlUp).RowFor i = R To 1 Step -1If WorksheetFunction.CountIf(.Columns(1), .Cells(i, 1)) > 1 Then.Rows(i).DeleteEnd IfNextEnd WithEnd Sub2 自动监视单元格Private Sub Worksheet_Change(ByVal Target As Range)Dim j, k, col As Integerj = Range("QTYS").Column'Range(iCol).Columnk = Target.Rowend_col = Range("end_cols").Column '13 '在这里调整颜色终止的最后一列col = Range("sum").Column'Stopqty = Target.ValueWith TargetIf .Count = 1 And .Row > 13 And .Column > col ThenIf Cells(k, col).Value = Cells(k, j).Value Then 'IsNumeric(Cells(k, col)) And Application.EnableEvents = FalseWith Range(Cells(k, 2), Cells(k, end_col)).Interior.ColorIndex = 4 'green.Pattern = xlSolidEnd WithApplication.EnableEvents = TrueElseIf Cells(k, col).Value > 0 And Cells(k, col).Value < Cells(k, j) ThenApplication.EnableEvents = FalseWith Range(Cells(k, 2), Cells(k, end_col)).Interior.ColorIndex = 6 ' yellow.Pattern = xlSolid 'xlNoneEnd WithApplication.EnableEvents = TrueElseIf Cells(k, col).Value > Cells(k, j).Value ThenApplication.EnableEvents = FalseWith Range(Cells(k, 2), Cells(k, end_col)).Interior.ColorIndex = 15.Pattern = xlSolid 'xlNoneEnd WithApplication.EnableEvents = TrueMsgBox "Actual Qty:" & qty & " > Order: " & Cells(k, j).Value & " or Wrong ?"ElseIf Cells(k, col).Value = 0 Or Cells(k, col).Value = "" ThenApplication.EnableEvents = FalseWith Range(Cells(k, 2), Cells(k, end_col)).Interior'.ColorIndex = 15.Pattern = xlNoneEnd WithApplication.EnableEvents = TrueEnd IfEnd IfEnd WithEnd Sub。

VBAExcel工作表代码总结

VBAExcel工作表代码总结

工作表增加工作表1、添加工作表 Sheets.Add2、在最后工作表后添加新工作表Sheets.Add after:=Sheets(Sheets.Count)3、在第1工作表前添加新工作表 Sheets.Add before:=Sheets(1)4、在第五个工作表之后添加三个Worksheets.Add after:=Worksheets(5), Count:=3删除工作表5、删除工作表1 Sheets(“sheet1”).Delete或 Sheets(1).Delete6、删除当前工作表 ActiveWindow.Selected Sheets.Delete或ActiveSheet.Delete7、删除工作表1 Sheets(“sheet1”).Delete或 Sheets(1).Delete显示隐藏工作表8、隐藏SHEET1这张工作表sheets("sheet1").Visible=False9、显示SHEET1这张工作表sheets("sheet1").Visible=True10、深度隐藏工作表 Sheet1.Visible = 211、显示工作表 Sheet1.Visible = -1工作表名字/命名12、获取工作表i的名称 ActiveWorkbook.Sheets(i).Name13、当前工作表命名 = "www"14、Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum15、返回活动工作表的名称 16、返回活动窗口的标题 Application.ActiveWindow.Caption17、返回活动工作簿的名称 关闭/保存工作表18、将该表格保存到C:\test.xls 目录 ExcelSheet.SaveAs "C:\TEST.XLS"19、关闭同时保存 Workbooks("filename.xls").Close savechanges:=True20、关闭同时不保存 Workbooks("filename.xls").Close savechanges:=False21、不保存直接关闭当前的工作簿Workbooks("BOOK1.XLS").Close SaveChanges:=False22、不保存直接关闭EXCEL窗口(关闭所有的工作簿)的VBA语句Application.DisplayAlerts = False Application.Quit选择工作表23、同时选择工作表1和工作表2 Worksheets(Array(“sheet1”,”sheet2”)).Select24、选定下(上)一个工作表sheets(activesheet.index-1).select sheets(activesheet.index+1).select移动工作表25、ActiveSheet.Move After:=ActiveWorkbook. _Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后文件(夹)操作26、建立文件夹的方法 MkDir "D:\Music"27、打开文件夹的方法ActiveWorkbook.FollowHyperlink Address:="D:\Music",NewWindow:=True28、删除一个文件 kill "c:\1.txt"29、退出EXCEL Application.Quit保护工作表30、保护工作表使其不至被修改。

Excel VBA常用代码及解释

Excel VBA常用代码及解释

Excel VBA常用代码及解释(1) Option Explicit解释:强制对模块内所有变量进行声明(2) Option Base 1解释:指定数组的第一个下标为1(3) On Error Resume Next解释:忽略错误继续执行VBA代码,避免出现错误消息(4) On Error GoTo 100解释:当错误发生时跳转到过程中的某个位置(5) On Error GoTo 0解释:恢复正常的错误提示(6) Application.DisplayAlerts=False解释:在程序执行过程中使出现的警告框不显示(7) Application.DisplayAlerts=True解释:在程序执行过程中恢复显示警告框(8) Application.ScreenUpdating=False解释:关闭屏幕刷新(9) Application.ScreenUpdating = True解释:打开屏幕刷新(10) Workbooks.Add()解释:创建一个新的工作簿(11) Workbooks(“book1.xls”).Activate解释:激活名为book1的工作簿(12) ThisWorkbook.Save解释:保存工作簿(13) ThisWorkbook.close解释:关闭当前工作簿(14) ActiveWorkbook.Sheets.Count解释:获取活动工作薄中工作表数(15) Active 解释:返回活动工作薄的名称(16) This 解释:返回当前工作簿名称(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.MoveAfter:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count )解释:将当前工作表移至工作表的最后(23) Worksheets(Array(“sheet1”,”sheet2”)).Select解释:同时选择工作表1和工作表2(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete解释:删除工作表1(25) edRange.FormatConditions.Delete解释:删除当前工作表中所有的条件格式(26) Cells.Hyperlinks.Delete解释:取消当前工作表所有超链接(27) ActiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,等同于快捷键Ctrl+A(28) Cells.Select解释:选定当前工作表的所有单元格(29) Range(“A1”).ClearContents解释:清除活动工作表上单元格A1中的内容。

30个有用的ExcelVBA代码(1~5)

30个有用的ExcelVBA代码(1~5)

30个有用的ExcelVBA代码(1~5)原创浮云Excel 2019-03-29 11:58:001.显示多个隐藏的工作表如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表。

下面的代码,可以让你一次显示所有的工作表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.一次性保护所有的工作表如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。

常用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 = "总表"'指定了返回总表的名字,可以根据实际需要修改为目标表的名称,比如“目录”。

经典Excel VBA代码

经典Excel VBA代码

经典Excel VBA代码1VBA基础在大家的关注声中即将告一段落了,有许多经典的VBA操作我们只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高。

最后我们收集了常见的VBA代码以飨广大的读者,希望对大家有所启示。

Application(Excel程序)篇Application.EnableEvents= True/ False ’启用/禁用所有事件Application.DisplayAlerts=True/False ’显示/关闭警告框提示框Appli cation.ScreenUpdating= True/False ’显示/关闭屏幕刷新Application.StatusBar = "软件报专用" ’在地址栏中显示文本,标题栏用Caption属性Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常Application.Ac tivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序Application.TemplatesPath ‘获取工作簿模板的位置Application.CalculateFull ’重新计算所有打开的工作簿中的数据Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档Application.AutoCorrect.AddReplacement "sweek", "软件报" ’自动将输入的"sweek"更正为"软件报"Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程Application.OnTime TimeValue("14:00:00"), " process " ’下午2点执行指定过程Application.OnTime EarliestTime:=TimeValue("14:00:00"), _Procedure:="process", Schedule:=False ’取消指定时间的过程的执行工作簿/工作表篇ActiveWorkbook.Sheets.Count ’获取活动工作薄中工作表数ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel 菜单中执行“格式—工作表—取消隐藏”来重新显示工作表ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘显示被隐藏的工作表ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护ActiveSheet.Columns("B").CutActiveSheet.Columns("F").Insert ‘以上两句将B列数据移至F列,原C列后的数据左移ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列的列宽ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格edRange.Rows.Count ‘当前工作表中已使用的行数ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2 ‘在第3张工作表之前添加2个新的工作表ActiveSheet.Move After:=ActiveWorkbook. _She ets(ActiveWorkbook.Sheets.Count) ’将当前工作表移至工作表的最后Worksheets(Array(“sheet1”,”sheet2”)).Select ’同时选择工作表sheet1和sheet2 edRange.FormatConditions.Delete ‘删除当前工作表中应用的条件格式Cells.Hyperlinks.Delete ‘取消当前工作表中所有单元格的超链接ActiveSheet.PageSetup.RightFooter=A ctiveWorkbook.FullName ‘在页脚显示文件的路径ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮单元格/单元格区域篇edRange.Row ‘获取已使用的单元格区域的第一行的行号Range(“A65536”).End(xlUp).Row ‘返回A列最后一行(即记录的总条数)cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula ‘工作表中单元格是否含有公式Target.EntireColumn.Select ‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行ActiveCell.Row ‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数ActiveWindow.ScrollRow = 2 ’将当前工作表窗口滚动到第2行ActiveWindow.ScrollColumn = 5 ’将当前工作表窗口滚动到第5列Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’将指定的单元格区域的内容复制成屏幕快照Selection.Hyperlinks.Delete ‘删除所选区域的所有链接ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold属性用于设置字体是否为加粗, Size属性设置字体大小, ColorIndex属性设置字体颜色(其值为颜色索引号), Italic属性设置字型是否为倾斜, Name 属性设置字体名称ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色IsEmpty (ActiveCell.Value) ’判断活动单元格中是否有值ActiveCell.Value = UCase(ActiveCell.Value) ’将当前单元格中的字符转换成大写ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’将活动单元格中的字符串转换成小写ActiveCell.CurrentRegion.Select ’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell, UsedRange.End(xlDown)).SelectActiveCell.Offset(1,0).Select ’活动单元格下移一行Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘读取指定单元格右侧单元格中的数据Range(“B2”).Offset(Rowo ffset:=-1)或Range(“B2”).Offset(-1) ‘读取指定单元格上一行单元格中的数据Range(“A1”).Copy Range(“B1”) ’复制单元格A1中的内容到B1中Range(“A1:D8”).Copy Range(“H1”) ’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作ActiveWindow.RangeSelection.Value = "软件报" ’将指定字符串输入到所选单元格区域中窗体(控件)篇Option Explicit ’强制对模块内所有变量进行声明Userform1.Show ‘显示用户窗体Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态Userform1.Hide ‘隐藏用户窗体Unload Userform1 或Unload Me ‘卸载用户窗体Me.Height=Int(0.5 * ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow. Width属性boBox1.AddItem Sheets("Shee t1").Cells(1, 1) ‘将指定单元格中的数据添加到复合框中ListBox1.List=MyProduct() ‘将数组MyProduct的值添加到列表框ListBox1中ListBox1.RowSource=”Sheet1!isum” ‘将工作表Sheet1中名为的isum区域的值添加到列表框中ListBox1.Selected(0) ‘选中列表框中的指定的条目ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目If MsgBox(“要退出吗?”,vbYesNo)<>vbYes Then Exit Sub ’返回值不为“是”,则退出Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在消息框中强制换行,也可用vbCrLf代替vbNewLine。

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代码1VBA基础在大家的关注声中即将告一段落了,有许多经典的VBA操作我们只是作了简要的介绍,想要熟练地使用VBA还需要大家慢慢地去消化和吸收,然后在实践中总结和提高。

最后我们收集了常见的VBA代码以飨广大的读者,希望对大家有所启示。

Application(Excel程序)篇Application.EnableEvents= True/ False ’启用/禁用所有事件Application.DisplayAlerts=True/False ’显示/关闭警告框提示框Appli cation.ScreenUpdating= True/False ’显示/关闭屏幕刷新Application.StatusBar = "软件报专用" ’在地址栏中显示文本,标题栏用Caption属性Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常Application.Ac tivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序Application.TemplatesPath ‘获取工作簿模板的位置Application.CalculateFull ’重新计算所有打开的工作簿中的数据Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档Application.AutoCorrect.AddReplacement "sweek", "软件报" ’自动将输入的"sweek"更正为"软件报"Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程Application.OnTime TimeValue("14:00:00"), " process " ’下午2点执行指定过程Application.OnTime EarliestTime:=TimeValue("14:00:00"), _Procedure:="process", Schedule:=False ’取消指定时间的过程的执行工作簿/工作表篇ActiveWorkbook.Sheets.Count ’获取活动工作薄中工作表数ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel 菜单中执行“格式—工作表—取消隐藏”来重新显示工作表ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘显示被隐藏的工作表ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护ActiveSheet.Columns("B").CutActiveSheet.Columns("F").Insert ‘以上两句将B列数据移至F列,原C列后的数据左移ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列的列宽ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格edRange.Rows.Count ‘当前工作表中已使用的行数ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2 ‘在第3张工作表之前添加2个新的工作表ActiveSheet.Move After:=ActiveWorkbook. _She ets(ActiveWorkbook.Sheets.Count) ’将当前工作表移至工作表的最后Worksheets(Array(“sheet1”,”sheet2”)).Select ’同时选择工作表sheet1和sheet2 edRange.FormatConditions.Delete ‘删除当前工作表中应用的条件格式Cells.Hyperlinks.Delete ‘取消当前工作表中所有单元格的超链接ActiveSheet.PageSetup.RightFooter=A ctiveWorkbook.FullName ‘在页脚显示文件的路径ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮单元格/单元格区域篇edRange.Row ‘获取已使用的单元格区域的第一行的行号Range(“A65536”).End(xlUp).Row ‘返回A列最后一行(即记录的总条数)cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula ‘工作表中单元格是否含有公式Target.EntireColumn.Select ‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行ActiveCell.Row ‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数ActiveWindow.ScrollRow = 2 ’将当前工作表窗口滚动到第2行ActiveWindow.ScrollColumn = 5 ’将当前工作表窗口滚动到第5列Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’将指定的单元格区域的内容复制成屏幕快照Selection.Hyperlinks.Delete ‘删除所选区域的所有链接ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold属性用于设置字体是否为加粗, Size属性设置字体大小, ColorIndex属性设置字体颜色(其值为颜色索引号), Italic属性设置字型是否为倾斜, Name 属性设置字体名称ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色IsEmpty (ActiveCell.Value) ’判断活动单元格中是否有值ActiveCell.Value = UCase(ActiveCell.Value) ’将当前单元格中的字符转换成大写ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’将活动单元格中的字符串转换成小写ActiveCell.CurrentRegion.Select ’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell, UsedRange.End(xlDown)).SelectActiveCell.Offset(1,0).Select ’活动单元格下移一行Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘读取指定单元格右侧单元格中的数据Range(“B2”).Offset(Rowo ffset:=-1)或Range(“B2”).Offset(-1) ‘读取指定单元格上一行单元格中的数据Range(“A1”).Copy Range(“B1”) ’复制单元格A1中的内容到B1中Range(“A1:D8”).Copy Range(“H1”) ’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作ActiveWindow.RangeSelection.Value = "软件报" ’将指定字符串输入到所选单元格区域中窗体(控件)篇Option Explicit ’强制对模块内所有变量进行声明Userform1.Show ‘显示用户窗体Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态Userform1.Hide ‘隐藏用户窗体Unload Userform1 或Unload Me ‘卸载用户窗体Me.Height=Int(0.5 * ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow. Width属性boBox1.AddItem Sheets("Shee t1").Cells(1, 1) ‘将指定单元格中的数据添加到复合框中ListBox1.List=MyProduct() ‘将数组MyProduct的值添加到列表框ListBox1中ListBox1.RowSource=”Sheet1!isum” ‘将工作表Sheet1中名为的isum区域的值添加到列表框中ListBox1.Selected(0) ‘选中列表框中的指定的条目ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目If MsgBox(“要退出吗?”,vbYesNo)<>vbYes Then Exit Sub ’返回值不为“是”,则退出Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在消息框中强制换行,也可用vbCrLf代替vbNewLine。

(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’…………。

(完整版)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常用代码实战大全

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 单元格中的公式 ----------------------------------------------------------------------- 44 13-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 保存工作簿的方法 ------------------------------------------------------------------ 11547-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 使用对象类型遍历控件--------------------------------------------------------- 281 119-3 使用程序标识符遍历控件 ----------------------------------------------------- 282 119-4 使用名称中的变量遍历图形 -------------------------------------------------- 283 119-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 设置用户窗体为应用程序的大小-------------------------------------------- 375 151-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 添加模块和过程------------------------------------------------------------------ 452 188-2 建立事件过程 --------------------------------------------------------------------- 454 188-3 模块的导入与导出--------------------------------------------------------------- 456 188-4 删除宏代码 ------------------------------------------------------------------------ 457 技巧189 保护VBA代码 --------------------------------------------------------------------- 459 189-1 设置工程密码 --------------------------------------------------------------------- 459 189-2 设置“工程不可查看” -------------------------------------------------------- 460 技巧190 优化代码 ----------------------------------------------------------------------------- 462 190-1 关闭屏幕刷新 --------------------------------------------------------------------- 462 190-2 使用工作表函数------------------------------------------------------------------ 464 190-3 使用更快的单元格操作方法 -------------------------------------------------- 465 190-4 使用With语句引用对象 ------------------------------------------------------- 466 190-5 少用激活或选择语句------------------------------------------------------------ 468 技巧191 取得文件的基本名称 ------------------------------------------------------------- 469 技巧192 防止用户中断代码运行 ---------------------------------------------------------- 470 技巧193 加班费计算表----------------------------------------------------------------------- 472 技巧194 制作发放条-------------------------------------------------------------------------- 498 技巧195 费用统计表-------------------------------------------------------------------------- 501 技巧196 职工花名册-------------------------------------------------------------------------- 516 技巧197 收据系统 ----------------------------------------------------------------------------- 529 技巧198 职工考勤系统----------------------------------------------------------------------- 567。

Excel-VBA常用代码总结1

Excel-VBA常用代码总结1

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

'下面的代码首先选择A1:E10区域,同时激活D4单元格:Range("a1:e10").SelectRange("d4:e5").Activate'而对于下面的代码:Range("a1:e10").SelectRange("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\"MkDir strPath•状态栏文字表示Application.StatusBar = "计算中"•双击单元格内容变换Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If (Target.Cells.Row >= 5And Target.Cells.Row <= 8) Then If Target.Cells.Value = "●"ThenTarget.Cells.Value = ""ElseTarget.Cells.Value = "●"End IfCancel = TrueEnd IfEnd Sub•文件夹选择框方法1Set objShell = CreateObject("Shell.Application")Set objFolder = objShell.BrowseForFolder(0, "文件", 0, 0)If Not objFolder Is NothingThen path= objFolder.self.Path & "\"end ifSet objFolder = NothingSet objShell = Nothing•文件夹选择框方法2(推荐)Public Function ChooseFolder() As StringDim dlgOpen As FileDialogSet dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)With dlgOpen.InitialFileName = ThisWorkbook.path & "\"If .Show = -1ThenChooseFolder = .SelectedItems(1)End IfEnd WithSet dlgOpen = NothingEnd Function'使用方法例:Dim path As Stringpath = ChooseFolder()If path <> ""ThenMsgBox"open folder"End If•文件选择框方法Public Function ChooseOneFile(Optional TitleStr As String = "Please choose a file", Optional TypesDec As String = "*.*", Optional Exten As String = "*.*") As StringDim dlgOpen As FileDialogSet dlgOpen = Application.FileDialog(msoFileDialogFilePicker)With dlgOpen.Title = TitleStr.Filters.Clear.Filters.Add TypesDec, Exten.AllowMultiSelect = False.InitialFileName = ThisWorkbook.PathIf .Show = -1Then' .AllowMultiSelect = True' For Each vrtSelectedItem In .SelectedItems' MsgBox "Path name: " & vrtSelectedItem' Next vrtSelectedItemChooseOneFile = .SelectedItems(1)End IfEnd WithSet dlgOpen = NothingEnd Function•某列到关键字为止循环方法1(假设关键字是end)Set CurrentCell = Range("A1")Do While CurrentCell.Value <> "end"……Set CurrentCell = CurrentCell.Offset(1, 0)Loop•某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRowDo While Cells(i, 1) <> ""……i = i + 1Loop•"For Each...Next 循环(知道确切边界)For Each c In Worksheets("Sheet1").Range("A1:D10").Cells If Abs(c.Value) < 0.01Then c.Value = 0Next•"For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环For Each c In ActiveCell.CurrentRegion.CellsIf Abs(c.Value) < 0.01Then c.Value = 0Next•某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1Do While Trim(Cells(lonRow, 2).Value) <> ""lonRow = lonRow + 1LooplonRow11 = lonRow11 - 1•A列有数据的最末行的行数的取得另一种方法Range("A65536").End(xlUp).Row•将文字复制到剪贴板Dim MyData As DataObjectSet MyData = New DataObjectMyData.SetText Range("H7").ValueMyData.PutInClipboard•取得路径中的文件名Private Function GetFileName(ByVal s As String)Dim sname() As Stringsname = Split(s, "\")GetFileName = sname(UBound(sname))End Function•取得路径中的路径名Private Function GetPathName(ByVal s As String)intFileNameStart = InStrRev(s, "\")GetPathName = Mid(s, 1, intFileNameStart)End Function•由模板sheet拷贝做成一个新的sheetThisWorkbook.Worksheets("template").CopyAfter:=ThisWorkbook.Worksheets(Sheets.Count)Set doc_s = ThisWorkbook.Worksheets(Sheets.Count)doc_ = "newsheetname" & Format(Now, "yyyyMMddhhmmss")•选中当列的最后一个有内容的单元格(中间不能有空行)'删除B3开始到B列最后一个有内容的单元格为止的所有内容Range("B3").SelectRange(Selection, Selection.End(xlDown)).SelectSelection.ClearContents•常量定义Private Const StartRow As Integer = 3•判断sheet是否存在Private Function IsWorksheet(ByVal strSeetName As String) As Boolean On Error GoTo ErrHandleDim blnRet As BooleanblnRet = IsNull(Worksheets(strSeetName))IsWorksheet = TrueExit FunctionErrHandle:IsWorksheet = FalseEnd Function•向单元格中写入公式Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"•引用命名单元格区域Range("MyBook.xls!MyRange")Range("[Report.xls]Sheet1!Sales"•选定命名的单元格区域Application.Goto Reference:="MyBook.xls!MyRange"'或者worksheets("sheetname").range("rangename").selectSelection.ClearContents•使用Dictionary'使用Dictionary需要添加参照Microsoft Scripting RuntimeDim dic As New Dictionarydic.Add "Table", "Cards"'前面是 Key 后面是 Valuedic.Add "Serial", "serialno"dic.Add "Number", "surface"MsgBox dic.Item("Table") '由Key取得Valuedic.Exists("Table") '判断某Key是否存在•将EXCEL表格中的两列表格插入到一个Dictionary中'函数:在ws工作表中,从iStartRow行开始到没有数据为止,把iKeyCol列和iKeyCol右一列插入到一个字典中,并返回字典。

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编程常用代码

ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格 ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格 ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格 end sub 如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以 往 sub my_offset 之下加一段代码 on error resume next
Excel VBA 编程常用代码
时间:2009-12-05 22:36:04 要收藏 投稿指南
来源:本站 作者:未知 我要投稿 我
用过 VB 的人都应该知道如何声明变量,在 VBA 中声明变量和 VB 中是完全一样的! 使用 Dim 语句 Dim a as integer '声明 a 为整型变量 Dim a '声明 a 为变体变量 Dim a as string '声明 a 为字符串变量 Dim a as currency ,b as currency ,c as currency '声明 a,b,c 为货币变量 ...... 声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、 Decimal(当前不支持)、Date、String(只限变长字符串)、String * length (定长字符串)、Object、Variant、用户定义类型或对象类型。 强制声明变量 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 = 3.4567 选择当前单元格所在区域 在 EXCEL97 中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格 中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码 加入到你的模块中。 Sub My_Select Selection.CurrentRegion.Select End sub 返回当前单元格中数据删除前后空格后的值 sub my_trim msgbox Trim(ActiveCell.Value) end sub 单元格位移 sub my_offset ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格

vba操作Excel经典的通用的代码之一

vba操作Excel经典的通用的代码之一

Key key:="{F3}", procedure:="MyAutoInput2"End SubPrivate Sub Workbook_
SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)MyRow=
Target.RowEnd SubPublic MyRow As IntegerSub MyAutoInput1()ActiveSheet.
sgBox ThisWorkbook.PathActiveSheet.Cells(2, 1).Value=ThisWorkbook.Path
'MsgBox Application.DefaultFilePathActiveSheet.Cells(3, 1).Value=Appli
cation.DefaultFilePath'MsgBox Application.ActiveWorkbook.PathActiveShe
Cells(MyRow, 4).Value=200End SubSub MyAutoInput2()ActiveSheet.Cells(My
Row, 4).Value=300End Sub最后,再贴上一组 代码,分别返回Excel文件所在的路径,注意, 返回的路径方式是不一样的:'M
sgBox Application.PathActiveSheet.Cells(1, 1).Value=Application.Path'M
MyColumn=Target.Column 获取活动单元格 所在的列号MyRow=Target.Row 获取活动单 元格所在的行号工作表名.U
sedRange.Rows.Count 指定工作表已使用的 行的总数工作表名.UsedRange.Columns.Count 指定工作表已使用

【ExcelVBA】数据处理常用代码小结

【ExcelVBA】数据处理常用代码小结

【ExcelVBA】数据处理常用代码小结
使用VBA进行数据处理常见的情景有以下两种;一种是数据的查询,例如精确查询、模糊查询、单条件查询、多条件查询等;一种是数据的统计,例如去重计数、分类计数、分类求和等……
这些问题在VBA上均有固定的套路,我们之前陆续分享了几期,今作个小结(带链接):
VBA常用小代码301:用字典提取不重复值并计数
VBA常用小代码302:一个简单的单条件数据查询问题
VBA常用小代码303:用字典处理多条件查询问题
VBA常用小代码304:一个字典实现条件求和和计数功能
VBA常用小代码305:数据模糊匹配查询
VBA常用小代码306:查询合并符合条件的多个结果
……
……
如果您有优秀的、工作中常见的问题,但苦于没有恰当的解决办法,可以在留言区提出来……实在找不到优秀的案例来写代码分享了……
我还好,绵延不熄的爱……。

EXCEL常用VBA代码

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

vba操作Excel经典的通用的代码之一

vba操作Excel经典的通用的代码之一

n.ActiveWorkbook.FullNameActiveSheet.Cells(5, 1).Value=Application.Act
iveWorkbook.FullName'MsgBox ActiveSheet
.Cells(6, 1).Value=如上的 代码够经典了,适合擅长于使用智能化
="{F3}", procedure:="MyAutoInput2"下面是完整的代码: Private Sub Workbook_Open()
Application.onKey key:="{F1}", procedure:="MyAutoInput1"Application.on
Key key:="{F3}", procedure:="MyAutoInput2"End SubPrivate Sub Workbook_
sedRange.Rows.Count 指定工作表已使用的行的总数工 作表名.UsedRange.Columns.Count 指定工作表已使用
的列的总数工作表名.Cells(行号, 列号).Value 获取指定工 作表某个单元格的值Worksheets(m).Cells(i, j).
Value 使用通用的序号方法,调用某个工作表的某个单 元格的数据for i=1 to Worksheets.Count 循环当前工作薄 的每一
的通用的代码的学习者使用。以后有时间有机会,再给 大家贴出更多的代码。
精心发布,谢谢阅plication.DefaultFilePathActiveSheet.Cells(3, 1).Value=Appli
cation.DefaultFilePath'MsgBox Application.ActiveWorkbook.PathActiveShe
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

获得文档的路径和文件名'路径'名称'路径+名称'或将ActiveWorkbook换成thisworkbook隐藏文档= False禁止屏幕更新= False禁止显示提示和警告消息= False文件夹做成strPath = "C:\temp\"MkDir strPath状态栏文字表示= "计算中"双击单元格内容变换Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If>= 5And<= 8) ThenIf= "●"Then= ""Else= "●"End IfCancel = TrueEnd IfEnd Sub文件夹选择框方法1Set objShell = CreateObject("")Set objFolder = (0, "文件", 0, 0)If Not objFolder Is NothingThen path= & "\"end ifSet objShell = Nothing文件夹选择框方法2(推荐)Public Function ChooseFolder() As StringDim dlgOpen As FileDialogSet dlgOpen = (msoFileDialogFolderPicker)With dlgOpen.InitialFileName = & "\"If .Show = -1ThenChooseFolder = .SelectedItems(1)End IfEnd WithSet dlgOpen = NothingEnd Function'使用方法例:Dim path As Stringpath = ChooseFolder()If path <> ""ThenMsgBox"open folder"End If文件选择框方法Public Function ChooseOneFile(Optional TitleStr As String = "Please choose a file", Optional TypesDec As String = "*.*", Optional Exten As String = "*.*") As StringDim dlgOpen As FileDialogSet dlgOpen = (msoFileDialogFilePicker)With dlgOpen.Title = TitleStr.. TypesDec, Exten.AllowMultiSelect = False.InitialFileName =If .Show = -1Then' .AllowMultiSelect = True' For Each vrtSelectedItem In .SelectedItems' MsgBox "Path name: " & vrtSelectedItem' Next vrtSelectedItemChooseOneFile = .SelectedItems(1)End IfEnd WithEnd Function某列到关键字为止循环方法1(假设关键字是end)Set CurrentCell = Range("A1")Do While<> "end"……Set CurrentCell = (1, 0)Loop某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRowDo While Cells(i, 1) <> ""……i = i + 1Loop"For Each...Next 循环(知道确切边界)For Each c In Worksheets("Sheet1").Range("A1:D10").CellsIf Abs < Then= 0Next"For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环For Each c In If Abs < Then= 0Next某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1Do While Trim(Cells(lonRow, 2).Value) <> ""lonRow = lonRow + 1LooplonRow11 = lonRow11 - 1A列有数据的最末行的行数的取得另一种方法Range("A65536").End(xlUp).Row将文字复制到剪贴板Dim MyData As DataObjectSet MyData = New DataObjectRange("H7").Value取得路径中的文件名Private Function GetFileName(ByVal s As String)Dim sname() As Stringsname = Split(s, "\")GetFileName = sname(UBound(sname))End Function取得路径中的路径名Private Function GetPathName(ByVal s As String)intFileNameStart = InStrRev(s, "\")GetPathName = Mid(s, 1, intFileNameStart)End Function由模板sheet拷贝做成一个新的sheet("template").Copy After:=Set doc_s == "newsheetname" & Format(Now, "yyyyMMddhhmmss")选中当列的最后一个有内容的单元格(中间不能有空行)'删除B3开始到B列最后一个有内容的单元格为止的所有内容Range("B3").SelectRange(Selection, (xlDown)).Select常量定义Private Const StartRow As Integer = 3判断sheet是否存在Private Function IsWorksheet(ByVal strSeetName As String) As Boolean On Error GoTo ErrHandleDim blnRet As BooleanblnRet = IsNull(Worksheets(strSeetName))IsWorksheet = TrueExit FunctionErrHandle:IsWorksheet = FalseEnd Function向单元格中写入公式Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"引用命名单元格区域Range("!MyRange")Range("[]Sheet1!Sales"选定命名的单元格区域Reference:="!MyRange"'或者worksheets("sheetname").range("rangename").select使用Dictionary'使用Dictionary需要添加参照Microsoft Scripting RuntimeDim dic As New Dictionary"Table", "Cards"'前面是Key 后面是Value"Serial", "serialno""Number", "surface"MsgBox ("Table") '由Key取得Value("Table") '判断某Key是否存在将EXCEL表格中的两列表格插入到一个Dictionary中'函数:在ws工作表中,从iStartRow行开始到没有数据为止,把iKeyCol列和iKeyCol右一列插入到一个字典中,并返回字典。

Public Function SetDic(ws As Worksheet, iStartRow, iKeyCol As Integer) As Dictionary Dim dic As New DictionaryDim i As Integeri = iStartRowDo Until (i, iRuleCol).Value = ""If Not (i, iKeyCol).Value) Then(i, iKeyCol).Value, (i, iKeyCol + 1).ValueEnd Ifi = i + 1LoopSet SetDic = dicEnd Function判断文件夹或文件是否存在'文件夹If Dir("C:\aaa", vbDirectory) = ""ThenMkDir"C:\aaa"End If'文件If Dir("C:\aaa\") = ""Thenmsgbox"文件C:\aaa\不存在"end if一次注释多行视图---工具栏---编辑调出编辑工具栏,工具栏上有个“设置注释块” 和“解除注释快”打开文件并将文件赋予到第一个参数wb中'注意,这里的path是文件的完整路径,包括文件名。

相关文档
最新文档