EXCEL-VBA-实用代码收集
电子表格的VBA简单而实用的代码摘录
电子表格VBA一些简单而实用的代码1.1.1最简洁的代码统计相对复杂的几个表格(非常有启发)Sub Summary()Worksheets("汇总").[e5].CurrentRegion.ClearContentsOn Error Resume NextDim sh As WorksheetFor Each sh In ActiveWorkbook.SheetsIf <> "汇总" ThenWith sh'获取工作表中数据区域的行数i = .[a65536].End(xlUp).Row'获取工作表中数据区域的列数j = .[iv1].End(xlToLeft).Column'将各工作表区域按R1C1样式存入tempstr字符串中,各区域之间用","隔开 tempstr = tempstr & "'" & & "'!R5C5:R" & i & "C" & j & ","End WithEnd IfNext'清除tempstr字符串中最后一个","tempstr = Left$(tempstr, Len(tempstr) - 1)'将tempstr字符串中的各区域名存入一维数组arr中arr = Split(tempstr, ",")'将各个区域的数据合并计算到"汇总"表Worksheets("汇总").[e5].Consolidate arr, xlSum, True, TrueWorksheets("汇总").[e5] = Sheet1.[e5] End Sub可把如下的几个表汇总成如下的表Excel关于引用有两种表示的方法,即A1 和 R1C1 引用样式。
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 Then= xuhaoxuhao = xuhao + 1End If<(1, 0).Range("a1").SelectLoop004.求教自定义函数查询了一些自定义函数的例子都是单变量的。
自定义函数能否建立“(As Range) As Interger”的函数,应该可以的,请各位大师赐教!请以“∑x2”为例,万分感谢!(该用"For Each ...Next",就是还不知道如何引用Range中的每个值,请高手指点。
EXCEL-VBA-实用代码收集
四、Word vba常用语句100句1、系统参数(01) Application.ActivePrinter‘获取当前打印机(02) Application.Height'当前应用程序文档的高度(03) Application.Width‘当前应用程序文档的宽度(04) Application.Build‘获取Word版本号和编译序号(05) Application.Caption‘当前应用程序名(06) Application.DefaultSaveFormat'返回空字符串,表示Word文档(07) Application.DisplayRecentFiles'返回是否显示最近使用的文档的状态(08) Application.Documents.Count'返回当前打开的文档数(09) Application.FontNames.Count‘返回当前可用的字体数(10) Application.Left‘返回当前文档的水平位置(11) Application.MacroContainer.FullName'返回当前文档名,包括所在路径Application.MacroContainer.pach'返回当前文档路径Application.ActiveDocument.Path‘获得文件的相对路径(12) Application.NormalTemplate.FullName'返回文档标准模板名称及所在位置(13) Application.RecentFiles.Count'返回最近打开的文档数目(14) Application.System.CountryRegion'返回应用程序所在的地区代码(15) Application.System.FreeDiskSpace‘返回应用程序所在磁盘可用空间(16) Application.System.HorizontalResolution'返回显示器的水平分辨率(17) Application.System.VerticalResolution'返回显示器的垂直分辨率(18) nguageDesignation'返回系统所使用的语言(19) Application.System.MathCoprocessorInstalled‘返回系统是否安装了数学协处理器(20) Application.System.OperatingSystem‘返回当前操作系统名(21) Application.System.ProcessorType'返回计算机处理器名(22) Application.System.Version‘返回操作系统的版本号(23) Application.Templates.Count'返回应用程序所使用的模板数(24) erName'返回应用程序用户名(25) Application.Version‘返回应用程序的版本号2、Documents/Document对象(26) ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置(27) ActiveDocument.Bookmarks.Count'返回当前文档中的书签数(28) ActiveDocument.Characters.Count'返回当前文档的字符数(29) ActiveDocument.CodeName‘返回当前文档的代码名称(30) ments.Count ‘返回当前文档中的评论数(31) ActiveDocument.Endnotes.Count'返回当前文档中的尾注数(32) ActiveDocument.Fields.Count'返回当前文档中的域数目(33) ActiveDocument.Footnotes.Count ‘返回当前文档中的脚注数(34) ActiveDocument.FullName'返回当前文档的全名及所在位置(35) ActiveDocument.HasPassword'当前文档是否有密码保护(36) ActiveDocument.Hyperlinks.Count'返回当前文档中的数(37) ActiveDocument.Indexes.Count'返回当前文档中的索引数(38) ActiveDocument.ListParagraphs.Count'返回当前文档中项目编号或项目符号数(39) ActiveDocument.ListTemplates.Count'返回当前文档中使用的列表模板数(40) ActiveDocument.Paragraphs.Count'返回当前文档中的段落数(41) ActiveDocument.Password=XXX'设置打开文件使用的密码(42) ActiveDocument.ReadOnly'获取当前文档是否为只读属性(43) ActiveDocument.Saved'当前文档是否被保存(44) ActiveDocument.Sections.Count'当前文档中的节数(45) ActiveDocument.Sentences.Count‘当前文档中的语句数(46) ActiveDocument.Shapes.Count'当前文档中的形状数,图形?(47) ActiveDocument.Styles.Count'当前文档中的样式数(48) ActiveDocument.Tables.Count‘当前文档中的表格数(49) ActiveDocument.TablesOfAuthorities.Count ‘返回当前文档中的引文目录数(50) ActiveDocument.TablesOfAuthoritiesCategories.Count ‘返回当前文档中引文目录类别数(51) ActiveDocument.TablesOfContents.Count ‘返回当前文档中的目录数(52) ActiveDocument.TablesOfFigures.Count'返回当前文档中的图表目录数3、Paragraphs/Paragraph对象(53) Selection.Paragraphs.Count'返回所选区域的段落数(54) Selection.Paragraphs.First'返回所选区域中的第一段(55) ActiveDocument.Paragraphs(1).LeftIndent'返回当前文档中第一段的左缩进值(56) ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距(57) ActiveDocument.Paragraphs(1).OutlineLevel‘返回或设置当前文档中第一段的大纲级别.OutlineLevel = wdOutlineLevel2‘2级.OutlineLevel = wdOutlineLevel3‘3级(58) ActiveDocument.Paragraphs(1).RightIndent ‘返回当前文档中第一段的右缩进量(59) ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(60) ActiveDocument.Paragraphs(1).SpaceAfter ‘返回当前文档中第一段的段后间距(61) ActiveDocument.Paragraphs(1).Range.Text'返回当前文档中第一段的容(62) ActiveDocument.Paragraphs(1)Local'返回当前文档中第一段应用的样式名(63) ActiveDocument.Paragraphs(1).Range.Style.Description'返回当前文档中第一段所应用样式的详细描述(64) ActiveDocument.Paragraphs(1)'返回当前文档中第一段所应用样式的字体名(65) ActiveDocument.Paragraphs(1)FarEast'返回或设置一种东亚字体名(66) ActiveDocument.Paragraphs(1).Range.Style.Font.Size '返回或设置当前文档中第一段所应用样式的字体大小(67) ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing '返回或设置字符间距(68) Selection.Words.Count'所选区域的字数Sentences对象(69) Selection.Sentences.Item(1)'所选区域中的第一句的容Words对象(71) ActiveDocument.Words(1).Select'选择当前文档中的第一个词(72) ActiveDocument.Range.Words(1).InsertAfter "我爱你!" '在当前文档中的第一个词后插入“我爱你”4、Characters对象(73) Selection.Characters.Count '当前文档中所选区域的字符数(74) ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落5、Sections/Section对象(75) ActiveDocument.Sections.First'当前文档的第一节(76) ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距(77) ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(78) ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(79) ActiveDocument.Sections.First.PageSetup.TopMargin '当前文档第一节所在页的顶边距(80) ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小(81) ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度(82) ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度(83) ActiveDocument.Sections.Add Range:=myRange'在当前文档中添加新节(84) ActiveDocument.Sections.Item(2)'当前文档中的第二节(85) st.Range.InsertAfter "文档结束!" '在当前文档中最后一节的结尾添加文字“文档结束!”6、Range对象(86) ActiveDocument.Range(Start:=0, End:=10) '表示当前文档前10个字符所组成的一个Range对象(87) Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(2).Range.Start, _End:=ActiveDocument.Paragraphs(4).Range.End) '将当前文档第2段至第4段设置为一个Range对象(88) ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段(89) Selection.CopyDocuments.Add.Content.Paste '复制所选容到新文档中(90) ActiveDocument.Bookmarks("Book1").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置(91) Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选容移至文档中的第4行(92) Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选容移至下一个表格的第1个单元格(93) Selection.Range.AutoFormat '为所选容套用格式(94) = "Arial" '将当前文档的字体设置为斜体(95) ActiveDocument.Content.Select Selection.Delete '将当前文档中的容删除其它(96) Documents.Add'添加一个新文档(97) Set myTable = ActiveDocument.Tables.Add(Selection.Range, 2, 2) '在当前文档所选区域添加一个2行2列的表格7、文件读写(98) Open "C:\my.txt" For Input As #1'打开一个用于输入的文件并令其编号为1(99) Line Input #1, TextLine'读取被打开用于输入且编号为1的文件(100) Close #1'关闭编号为1的文件一、新建Word引用需要首先创建一个对Word Application 对象的引用。
EXCELVBA实用代码收集.doc
图片切换Sub 显示开或关()If ActiveSheet.Shapes("Picture 2").Visible = True ThenActiveSheet.Shapes("Picture 1").Visible = TrueActiveSheet.Shapes("Picture 2").Visible = FalseElseActiveSheet.Shapes("Picture 2").Visible = TrueActiveSheet.Shapes("Picture 1").Visible = FalseEnd IfEnd Sub当前单元格输入数字自动分解Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column > 1 Then Exit SubIf Len(Target(1, 1)) > 1 ThenDim oJs As ObjectSet oJs = CreateObject("ScriptControl"): nguage = "JScript"Target(1, 2).Resize(1, 254).ClearContentsTarget.Resize(1, Len(Target)) = Split(oJs.eval("'" & Target & "'.match(/./g);"), ",") End IfEnd Subword批量修改图片大小——固定长宽Sub setpicsize() '设置图片大小Dim n'图片个数On Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为400px ActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度300pxNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片ActiveDocument.Shapes(n).Height = 400 '设置图片高度为400pxActiveDocument.Shapes(n).Width = 300 '设置图片宽度300pxNext nEnd Sub批量修改图片大小——按比例缩放篇Sub setpicsize() '设置图片大小Dim n'图片个数Dim picwidthDim picheightOn Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).WidthActiveDocument.InlineShapes(n).Height = picheight * 1.1 '设置高度为1.1倍ActiveDocument.InlineShapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍Next nFor n = 1 ToActiveDocument.Shapes.Count 'Shapes类型图片picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).WidthActiveDocument.Shapes(n).Height = picheight * 1.1 '设置高度为1.1倍ActiveDocument.Shapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍Next nEnd Sub批量给图片加边框Dim i As IntegerFor i = 1 To ActiveDocument.InlineShapes.CountWith ActiveDocument.InlineShapes(i)With .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth100pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderRight).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth100pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderTop).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth100pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth100pt.Color = wdColorAutomaticEnd With.Borders.Shadow = FalseEnd WithWith Options.DefaultBorderLineStyle = wdLineStyleSingle.DefaultBorderLineWidth = wdLineWidth100pt.DefaultBorderColor = wdColorAutomaticEnd WithNext i锁定文件名Private Sub Workbook_Open()If <> "三八节.xls" ThenApplication.DisplayAlerts = FalseApplication.QuitEnd IfEnd Sub将数值转换为文本[程序扩展] 可以将程序代码1和程序代码2略加改动,将一个字符附加到所选单元格的开头。
EXCEL-VBA-实用代码收集
EXCEL-VBA-实用代码收集四、Word vba常用语句100句1、系统参数(01) Application.ActivePrinter …获取当前打印机(02) Application.Height '当前应用程序文档的高度(03) Application.Width …当前应用程序文档的宽度(04) Application.Build …获取Word版本号和编译序号(05) Application.Caption …当前应用程序名(06) Application.DefaultSaveFormat '返回空字符串,表示Word文档(07) Application.DisplayRecentFiles '返回是否显示最近使用的文档的状态(08) Application.Documents.Count '返回当前打开的文档数(09) Application.FontNames.Count …返回当前可用的字体数(10) Applicat ion.Left …返回当前文档的水平位置(11) Application.MacroContainer.FullName '返回当前文档名,包括所在路径Application.MacroContainer.pach '返回当前文档路径Application.ActiveDocument.Path …获得文件的相对路径(12) Application.NormalTemplate.FullName '返回文档标准模板名称及所在位置(13) Application.RecentFiles.Count '返回最近打开的文档数目(14) Application.System.CountryRegion '返回应用程序所在的地区代码(15) Application.System.FreeDiskSpace …返回应用程序所在磁盘可用空间(16) Application.System.HorizontalResolution '返回显示器的水平分辨率(17) Application.System.VerticalResolution '返回显示器的垂直(18)/doc/0018125294.html,nguageDesignatio n '返回系统所使用的语言(19) Application.System.MathCoprocessorInstalled …返回系统是否安装了数学协处理器(20) Application.System.OperatingSystem …返回当前操作系统名(21) Application.System.ProcessorType '返回计算机处理器名(22) Application.Sy stem.Version …返回操作系统的版本号(23) Application.Templates.Count '返回应用程序所使用的模板数(24) /doc/0018125294.html,erName '返回应用程序用户名(25) Application.Version …返回应用程序的版本号2、Documents/Document对象(26) ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置(27) ActiveDocument.Bookmarks.Count '返回当前文档中的书签数(28) ActiveDocument.Characters.Count '返回当前文档的字符数(29) ActiveDocument.CodeName …返回当前文档的代码名称(30)/doc/0018125294.html,ments.Count …返回当前文档中的评论数(31) ActiveDocument.Endnotes.Count '返回当前文档中的尾注数(32) ActiveDocument.Fields.Count '返回当前文档中的域数目(33) ActiveDocument.Footnotes.Count …返回当前文档中的脚(34) ActiveDocument.FullName '返回当前文档的全名及所在位置(35) ActiveDocument.HasPassword '当前文档是否有密码保护(36) ActiveDocument.Hyperlinks.Count '返回当前文档中的链接数(37) ActiveDocument.Indexes.Count '返回当前文档中的索引数(38) ActiveDocument.ListParagraphs.Count '返回当前文档中项目编号或项目符号数(39) ActiveDocument.ListTemplates.Count '返回当前文档中使用的列表模板数(40) ActiveDocument.Paragraphs.Count '返回当前文档中的段落数(41) ActiveDocument.Password=XXX '设置打开文件使用的密码(42) ActiveDocument.ReadOnly '获取当前文档是否为只读属性(43) ActiveDocument.Saved '当前文档是否被保存(44) ActiveDocument.Sections.Count '当前文档中的节数(45) ActiveDocument.Sentences.Count …当前文档中的语句数(46) ActiveDocument.Shapes.Count '当前文档中的形状数,图形?(47) ActiveDocument.Styles.Count '当前文档中的样式数(48) ActiveDocument.Tables.Count …当前文档中的表格数(49) ActiveDocument.TablesOfAuthorities.Count …返回当前文档中的引文目录数(50)ActiveDocument.T ablesOfAuthoritiesCategories.Count …返回当前文档中引文目录类别数(51) ActiveDocument.Tabl esOfContents.Count …返回当前文档中的目录数(52) ActiveDocument.TablesOfFigures.Count '返回当前文档中的图表目录数3、Paragraphs/Paragraph对象(53) Selection.Paragraphs.Count '返回所选区域的段落数(54) Selection.Paragraphs.First '返回所选区域中的第一段(55) ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档中第一段的左缩进值(56) ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距(57) ActiveDocument.Paragraphs(1).OutlineLevel …返回或设置当前文档中第一段的大纲级别.OutlineLevel = wdOutlineLevel2 …2级.OutlineLevel = wdOutlineLevel3 …3级(58) ActiveDocu ment.Paragraphs(1).RightIndent …返回当前文档中第一段的右缩进量(59) ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(60) ActiveDocument.Paragraphs(1).SpaceAfter …返回当前文档中第一段的段后间距(61) ActiveDocument.Paragraphs(1).Range.Text '返回当前文档中第一段的内容(62)ActiveDocument.Paragraphs(1)/doc/0018 125294.html,Local '返回当前文档中第一段应用的样式名(63) ActiveDocument.Paragraphs(1).Range.Style.Description '返回当前文档中第一段所应用样式的详细描述(64)ActiveDocument.Paragraphs(1)/doc/0018 125294.html, '返回当前文档中第一段所应用样式的字体名(65)ActiveDocument.Paragraphs(1)/doc/0018125294.html,FarEast '返回或设置一种东亚字体名(66) ActiveDocument.Paragraphs(1).Range.Style.Font.Size '返回或设置当前文档中第一段所应用样式的字体大小(67)ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing '返回或设置字符间距(68) Selection.Words.Count '所选区域的字数Sentences对象(69) Selection.Sentences.Item(1) '所选区域中的第一句的内容Words对象(71) ActiveDocument.Words(1).Select '选择当前文档中的第一个词(72) ActiveDocument.Range.Words(1).InsertAfter "我爱你!" '在当前文档中的第一个词后插入“我爱你”4、Characters对象(73) Selection.Characters.Count '当前文档中所选区域的字符数(74)ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落5、Sections/Section对象(75) ActiveDocument.Sections.First '当前文档的第一节(76)ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距(77) ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(78) ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(79) ActiveDocument.Sections.First.PageSetup.T opMargin '当前文档第一节所在页的顶边距(80) ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小(81) ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度(82) ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度(83) ActiveDocument.Sections.Add Range:=myRange '在当前文档中添加新节(84) ActiveDocument.Sections.Item(2) '当前文档中的第二节(85)/doc/0018125294.html,st.Range.InsertAfte r "文档结束!" '在当前文档中最后一节的结尾添加文字“文档结束!”6、Range对象(86) ActiveDocument.Range(Start:=0, End:=10) '表示当前文档前10个字符所组成的一个Range对象(87) Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(2).R ange.Start, _End:=ActiveDocument.Paragraphs(4).Range.End) '将当前文档第2段至第4段设置为一个Range对象(88) ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段(89) Selection.CopyDocuments.Add.Content.Paste '复制所选内容到新文档中(90) ActiveDocument.Bookmarks("Book1").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置(91) Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选内容移至文档中的第4行(92) Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格(93) Selection.Range.AutoFormat '为所选内容套用格式(94) /doc/0018125294.html, = "Arial" '将当前文档的字体设置为斜体(95) ActiveDocument.Content.Select Selection.Delete '将当前文档中的内容删除其它(96) Documents.Add '添加一个新文档(97) Set myTable = ActiveDocument.T ables.Add(Selection.Range, 2, 2) '在当前文档所选区域添加一个2行2列的表格7、文件读写(98) Open "C:\my.txt" For Input As #1 '打开一个用于输入的文件并令其编号为1(99) Line Input #1, TextLine '读取被打开用于输入且编号为1的文件(100) Close #1 '关闭编号为1的文件一、新建Word引用需要首先创建一个对Word Application 对象的引用。
Excel-vba宏代码-大全
宏文件集▲打开全部隐藏工作表返回Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub▲循环宏返回Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环Next iEnd Sub▲录制宏时调用“停止录制”工具栏返回Sub 录制宏时调用停止录制工具栏()mandBars("Stop Recording").Visible = TrueEnd Sub▲高级筛选5列不重复数据至指定表返回Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending,Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub▲双击单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub▲双击指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub▲进入单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字()Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub▲进入指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call打开隐藏表End Sub▲在多个宏中依次循环执行一个(控件按钮代码)返回Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub▲在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub▲在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub▲根据A1单元文本隐藏/显示按钮(控件按钮代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub▲当前单元返回按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub▲当前单元内容返回到按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub▲奇偶页分别打印返回Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub▲自动打印多工作表第一页返回Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub▲查找A列文本循环插入分页符返回Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub▲将A列最后数据行以上的所有B列图片大小调整为所在单元大小返回Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小()Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing ThenPic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub▲返回光标所在行数返回Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub▲在A1返回当前选中单元格数量返回Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub▲返回当前工作簿中工作表数量返回Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub▲返回光标选择区域的行数和列数返回Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub▲工作表中包含数据的最大行数返回Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub▲返回A列数据的最大行数返回Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub▲将所选区域文本插入新建文本框返回Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left +ActiveCell.Width, ActiveCell.Top + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub▲批量插入地址批注返回Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.AddressNextEnd IfEnd Sub▲批量插入统一批注返回Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub▲以A1单元内容批量插入批注返回Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub▲不连续区域插入当前文件名和表名及地址返回Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + +"!" + mycell.AddressNextEnd Sub▲不连续区域录入当前单元地址返回Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub▲连续区域录入当前单元地址返回Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲返回当前单元地址返回Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub▲不连续区域录入当前日期返回Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub▲不连续区域录入当前数字日期返回Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub▲不连续区域录入当前日期和时间返回Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss")End Sub▲不连续区域录入对勾返回Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub▲不连续区域录入当前文件名返回Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub▲不连续区域添加文本返回Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub▲不连续区域插入文本返回Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub▲从指定位置向下同时录入多单元指定内容返回Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr)End Sub▲按aa工作表A列的内容排列工作表标签顺序返回Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub▲以A1单元文本作表名插入工作表返回Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub▲删除全部未选定工作表返回Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub▲工作表标签排序返回Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选 '是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub▲定义指定工作表标签颜色返回Sub 定义指定工作表标签颜色()Sheets("Sheet1").Tab.ColorIndex = 46End Sub▲在目录表建立本工作簿中各表链接目录返回Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1",ScreenTip:=Sheets(i).NameEnd IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub▲建立工作表文本目录返回Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub▲查另一文件的全部表名返回Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open Filename:=ThisWorkbook.Path & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub▲当前单元录入计算机名返回Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲当前单元录入计算机用户名返回 Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲解除全部工作表保护返回Sub 解除全部工作表保护()Dim n As IntegerFor n = 1 To Sheets.CountSheets(n).UnprotectNext nEnd Sub▲为指定工作表加指定密码保护表返回Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub▲在有密码的工作表执行代码返回Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123” 打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub▲执行前需要验证密码的宏(控件按钮代码)返回Private Sub CommandButton1_Click()If InputBox("请输入密码:") <> "123" Then '密码是123MsgBox "密码错误,按确定退出!", 64, "提示"Exit SubEnd IfCells(1, 1) = 10End SubSub 执行前需要验证密码的宏()If InputBox("请输入您的使用权限:", "系统提示") = 123 Then重排窗口 '要执行的宏代码或宏名称ElseMsgBox "对不起,您没有使用该宏的权限,按确定键后退出!"End IfEnd Sub▲拷贝A1公式和格式到A2返回Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub▲复制单元数值返回Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub▲插入数值条件格式返回Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub▲插入透明批注返回Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub▲添加文本返回Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲光标定位到指定工作表A列最后数据行下一单元返回Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub▲定位选定单元格式相同的全部单元格返回Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="",searchformat:=True)If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub▲按当前单元文本定位返回Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲按固定文本定位返回Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲删除包含固定文本单元的行或列返回Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is NothingEnd Sub▲定位数据及区域以上的空值返回Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲右侧单元自动加5(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub▲当前单元加2返回Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲A列等于A列减B列返回Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub▲用于光标选定多区域跳转指定单元(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub▲将A1单元录入的数据累加到B1单元(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub▲在指定颜色区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "")NextEnd Sub▲在指定区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing ThenFor Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub▲双击指定单元,循环录入文本(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub▲单元区域引用(工作表代码)返回Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub▲在指定区域选择单元时数值加1(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub▲混合文本的编号返回Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3,100)) + 1)End Sub▲指定区域单元双击数据累加(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect([A1:Y100], Target) Is Nothing Thenoldvalue = Val(Target.Value)inputvalue = InputBox("请输入数量,按ENTER键确认!", "数值累加器")Target.Value = oldvalue + inputvalueEnd IfEnd Sub▲选择单元区域触发事件(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Address = "$A$1:$B$2" ThenMsgBox "你选择了$A$1:$B$2单元"End IfEnd Sub▲当修改指定单元内容时自动执行宏(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then重排窗口End IfEnd Sub▲被指定单元内容限制执行宏返回Sub 被指定单元限制执行宏()If Range("$A$1") = "关闭" Then Exit Sub窗口End Sub▲双击单元隐藏该行(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Rows(Target.Row).Hidden = TrueEnd Sub▲高亮显示行(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 2Rows("1:2").Interior.ColorIndex = 40 '保持1至2行的颜色推荐39,22,40,Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15End Sub▲高亮显示行和列(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneRows(Target.Row).Interior.ColorIndex = 34Columns(Target.Column).Interior.ColorIndex = 34End Sub▲为指定工作表设置滚动范围(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)Sheet1.ScrollArea = "A1:M30"End Sub▲在指定单元记录打印和预览次数(工作簿代码)返回Private Sub Workbook_BeforePrint(Cancel As Boolean)Range("A1") = 1 + Range("A1")End Sub▲自动数字金额转大写(工作表代码)返回Private Sub Worksheet_Change(ByVal M As Range)On Error Resume Nexty = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1,"", IIf(f > 1, "零", "")))c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")M = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Sub▲将全部工作表的A1单元作为单击按钮(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)If Target.Address = "$A$1" ThenCall 宏名End IfEnd Sub▲闹钟——到指定时间执行宏(工作簿代码)返回Private Sub Workbook_Open()Application.OnTime ("11:45:00"), "提示1" '宏名字Application.OnTime ("12:00:00"), "提示2" '宏名字End Sub▲改变Excel界面标题的宏(工作簿代码)返回Private Sub Workbook_Open()Application.Caption = "春节快乐"End Sub▲在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)Worksheets("表2").Range("A1") = Target.Address(0, 0)End Sub▲B列录入数据时在A列返回记录时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 ThenTarget.Offset(, -1) = NowEnd IfEnd Sub▲当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = DateTarget.Offset(, 2) = TimeEnd IfEnd IfEnd SubPublic Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = Format(Now(), "yyyy-mm-dd")Target.Offset(, 2) = Format(Now(), "h:mm:ss")End IfEnd IfEnd Sub▲指定单元显示光标位置内容(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)Sheets(1).Range("A1") = SelectionEnd Sub▲每编辑一个单元保存文件返回Private Sub Worksheet_Change(ByVal Target As Range)ThisWorkbook.SaveEnd Sub▲指定允许编辑区域返回Sub 指定允许编辑区域()ActiveSheet.ScrollArea = "B8:G15"End Sub▲解除允许编辑区域限制返回Sub 解除允许编辑区域限制()ActiveSheet.ScrollArea = ""End Sub▲删除指定行返回Sub 删除指定行()Workbooks("临时表").Sheets("表2").Range("5:5").DeleteEnd Sub▲删除A列为指定内容的行返回Sub 删除A列为指定内容的行()Dim a, b As Integera = Sheet1.[a65536].End(xlUp).RowFor b = a To 2 Step -1If Cells(b, 1).Value = "删除" ThenRows(b).DeleteEnd IfNextEnd Sub▲删除A列非数字单元行返回Sub 删除A列非数字单元行()i = [a65536].End(xlUp).RowRange("A1:A" & i).SpecialCells(xlCellTypeConstants, 2).EntireRow.DeleteEnd Sub▲有条件删除当前行返回Sub 有条件删除当前行()If [A1] = 2 Or [B1] = "删除" ThenSelection.Delete Shift:=xlUpEnd IfEnd Sub▲选择下一行返回Sub 选择下一行()ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.SelectEnd Sub▲选择第5行开始所有数据行返回Sub 选择第5行开始所有数据行A()Dim i%i = Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues,SearchDirection:=xlPrevious).EntireRow.RowRows("5:" & i).SelectEnd SubSub 选择第5行开始所有数据行B()Rows("5:" & Cells.Find("*", , , , 1, 2).Row).SelectEnd Sub▲选择光标或选区所在行返回Sub 选择光标或选区所在行()Selection.EntireRow.Select▲选择光标或选区所在列返回Sub 选择光标或选区所在列()Selection.EntireColumn.SelectEnd Sub▲光标定位到名称指定位置返回Sub 定位()Application.Goto Range(Evaluate("名称"))End Sub▲选择名称定义的数据区返回Sub 选择名称定义的数据区()[数据区].Select '插入名称要使用INDIRECT函数'Range("数据区").Select 或者'Sheet1.Range("数据区").Select 或者End Sub▲选择到指定列的最后行返回Sub 选择到指定列的最后行()Range("C4:G" & [G65536].End(xlUp).Row).SelectEnd Sub▲将Sheet1的A列的非空值写到Sheet2的A列返回Sub 将Sheet1的A列的非空值写到Sheet2的A列()Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]End Sub▲将名称1的数据写到名称2返回Sub Macro2()Range("位置2") = Range("位置1").Value▲单元反选返回Sub 单元反选()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim raddress As String, taddress As Stringraddress = Selection.Addresstaddress = edRange.AddressWith Sheets.Add.Range(taddress) = 0.Range(raddress) = "=0"raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address.DeleteEnd WithActiveSheet.Range(raddress).SelectApplication.ScreenUpdating = TrueEnd Sub▲调整选中对象中的文字返回Sub 调整选中对象中的文字()'文字居中、自动调整大小With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.ReadingOrder = xlContext.Orientation = xlHorizontal.AutoSize = True.AddIndent = FalseEnd WithEnd Sub▲去除指定范围内的对象返回Sub 去除指定范围内的对象()。
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。
实用的EXCELVBA编程大全总结
实用的EXCEL VBA编程小结:最近单位内部的项目里要用到些报表EXCEL的生成,虽说JAVA 的POI可以有这能力,但觉得还是可能比较麻烦,因此还是转用。
net来搞,用Visual Studio2003配合office 2003,用到了一些VBA,因此小结并归纳之,选了些资料归纳在这里,以备今后查考首先创建Excel 对象,使用ComObj:Dim ExcelID as Excel。
ApplicationSet ExcelID as new Excel。
Application1) 显示当前窗口:ExcelID。
Visible := True;2)更改Excel 标题栏:ExcelID。
Caption := ’应用程序调用Microsoft Excel’;3) 添加新工作簿:ExcelID。
WorkBooks。
Add;4) 打开已存在的工作簿:ExcelID。
WorkBooks。
Open( ’C:\Excel\Demo。
xls’);5) 设置第2个工作表为活动工作表:ExcelID。
WorkSheets[2].Activate;或ExcelID.WorkSheets[ ’Sheet2’].Activate;6)给单元格赋值:ExcelID。
Cells[1,4]。
Value := ’第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID。
ActiveSheet.Columns[1].ColumnsWidth := 5;8)设置指定行的高度(单位:磅)(1磅=0。
035厘米),以第二行为例:ExcelID。
ActiveSheet.Rows[2]。
RowHeight := 1/0.035;// 1厘米9) 在第8行之前插入分页符:ExcelID。
WorkSheets[1]。
Rows[8].PageBreak := 1;10)在第8列之前删除分页符:ExcelID。
Excel-vba宏代码-大全
Excel-vba宏代码-大全宏文件集▲打开全部隐藏工作表返回Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub▲循环宏返回Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环Next iEnd Sub▲录制宏时调用“停止录制”工具栏返回Sub 录制宏时调用停止录制工具栏()/doc/4911298482.html,mandBars("Stop Recording").Visible = TrueEnd Sub▲高级筛选5列不重复数据至指定表返回Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D 列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending,Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub▲双击单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub▲双击指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub▲进入单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字(/doc/4911298482.html,)Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub▲进入指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call打开隐藏表▲在多个宏中依次循环执行一个(控件按钮代码)返回Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub▲在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd With▲在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub▲根据A1单元文本隐藏/显示按钮(控件按钮代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub▲当前单元返回按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub▲当前单元内容返回到按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub▲奇偶页分别打印返回Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub▲自动打印多工作表第一页返回Sub 自动打印多工作表第一页() Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub▲查找A列文本循环插入分页符返回Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.AddBefore:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub▲将A列最后数据行以上的所有B列图片大小调整为所在单元大小返回Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小()Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing ThenPic.Top = Pic.T opLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub▲返回光标所在行数返回Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub▲在A1返回当前选中单元格数量返回Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub▲返回当前工作簿中工作表数量返回Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub▲返回光标选择区域的行数和列数返回Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub▲工作表中包含数据的最大行数返回Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub▲返回A列数据的最大行数返回Sub 返回A列数据的最大行数() n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub▲将所选区域文本插入新建文本框返回Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizon tal, ActiveCell.Left +ActiveCell.Width, ActiveCell.T op + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub▲批量插入地址批注返回Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selection/doc/4911298482.html,ment.Deleter.AddComment/doc/4911298482.html,ment.Visible = False /doc/4911298482.html,ment.Text Text:="本单元格:" & r.Address & " of " & Selection.AddressNextEnd IfEnd Sub▲批量插入统一批注返回Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddComment/doc/4911298482.html,ment.Visible = False /doc/4911298482.html,ment.TextText:=msgNextEnd IfEnd Sub▲以A1单元内容批量插入批注返回Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddComment/doc/4911298482.html,ment.Visible = False /doc/4911298482.html,ment.TextText:=[a1].T extNextEnd IfEnd Sub▲不连续区域插入当前文件名和表名及地址返回Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + /doc/4911298482.html, + "]" + /doc/4911298482.html, +"!" + mycell.AddressNextEnd Sub▲不连续区域录入当前单元地址返回Sub 区域录入当前单元地址() For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub▲连续区域录入当前单元地址返回Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲返回当前单元地址返回Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub▲不连续区域录入当前日期返回Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub▲不连续区域录入当前数字日期返回Sub 区域录入当前数字日期() Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub▲不连续区域录入当前日期和时间返回Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss")End Sub▲不连续区域录入对勾返回Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub▲不连续区域录入当前文件名返回Sub 批量录入当前文件名()Selection.FormulaR1C1 = /doc/4911298482.html,End Sub▲不连续区域添加文本返回Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub▲不连续区域插入文本返回Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub▲从指定位置向下同时录入多单元指定内容返回Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr)End Sub▲按aa工作表A列的内容排列工作表标签顺序返回Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub▲以A1单元文本作表名插入工作表返回Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add/doc/4911298482.html, = nmEnd Sub▲删除全部未选定工作表返回Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = /doc/4911298482.html,n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = /doc/4911298482.html, TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub▲工作表标签排序返回Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选'是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub▲定义指定工作表标签颜色返回Sub 定义指定工作表标签颜色() Sheets("Sheet1").T ab.ColorIndex = 46End Sub▲在目录表建立本工作簿中各表链接目录返回Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add/doc/4911298482.html, = "目录" End If。
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(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 常用代码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中的每个值,请高手指点。
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.一次性保护所有的工作表如果工作薄里面有多个工作表,并且希望保护所有的工作表,那么下面的代码,可以派上用场。
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•改变背景色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常用代码集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(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(Visual Basic for Applications)是一种基于 Microsoft Visual Basic 编程语言的宏语言,可用于增强 Excel 的功能和自动化重复任务。
以下是一些 Excel VBA 的入门和实用例子,供参考:1. 基本语法和结构Excel VBA 代码通常以 `Sub` 或 `Function` 开头,后面跟着子程序或函数名称。
例如,下面是一个简单的 VBA 子程序,用于将单元格 A1 中的值设置为 "Hello World"。
```vbaSub SayHello()Range("A1").Value = "Hello World"End Sub```上述代码中,`Sub` 表示这是一个子程序,`SayHello()` 是子程序的名称。
`Range("A1")` 表示单元格 A1,`.Value` 表示该单元格的值,`"Hello World"` 就是要设置的新值。
2. 循环和条件语句Excel VBA 支持多种循环和条件语句,可以根据具体需求选择使用。
例如,下面是一个使用 `For` 循环的子程序,用于将单元格 A1 到 A10 中的值递增设置为 1 到 10。
```vbaSub FillNumbers()Dim i As IntegerFor i = 1 To 10Range("A" & i).Value = iNext iEnd Sub```上述代码中,`Dim` 声明了一个名为 i 的整数变量,`For` 循环从 1 到 10 遍历变量 i,`Range("A" & i)` 表示单元格 A1 到 A10 中的每个单元格,`.Value = i` 将该单元格的值设置为 i。
3. 用户输入和消息框Excel VBA 可以使用 `InputBox` 和 `MsgBox` 函数与用户进行交互。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、Word vba常用语句100句1、系统参数(01) Application.ActivePrinter ‘获取当前打印机(02) Application.Height '当前应用程序文档的高度(03) Application.Width ‘当前应用程序文档的宽度(04) Application.Build ‘获取Word版本号和编译序号(05) Application.Caption ‘当前应用程序名(06) Application.DefaultSaveFormat '返回空字符串,表示Word文档(07) Application.DisplayRecentFiles '返回是否显示最近使用的文档的状态(08) Application.Documents.Count '返回当前打开的文档数(09) Application.FontNames.Count ‘返回当前可用的字体数(10) Application.Left ‘返回当前文档的水平位置(11) Application.MacroContainer.FullName '返回当前文档名,包括所在路径Application.MacroContainer.pach '返回当前文档路径Application.ActiveDocument.Path ‘获得文件的相对路径(12) Application.NormalTemplate.FullName '返回文档标准模板名称及所在位置(13) Application.RecentFiles.Count '返回最近打开的文档数目(14) Application.System.CountryRegion '返回应用程序所在的地区代码(15) Application.System.FreeDiskSpace ‘返回应用程序所在磁盘可用空间(16) Application.System.HorizontalResolution '返回显示器的水平分辨率(17) Application.System.VerticalResolution '返回显示器的垂直分辨率(18) nguageDesignation '返回系统所使用的语言(19) Application.System.MathCoprocessorInstalled ‘返回系统是否安装了数学协处理器(20) Application.System.OperatingSystem ‘返回当前操作系统名(21) Application.System.ProcessorType '返回计算机处理器名(22) Application.System.Version ‘返回操作系统的版本号(23) Application.Templates.Count '返回应用程序所使用的模板数(24) erName '返回应用程序用户名(25) Application.Version ‘返回应用程序的版本号2、Documents/Document对象(26) ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置(27) ActiveDocument.Bookmarks.Count '返回当前文档中的书签数(28) ActiveDocument.Characters.Count '返回当前文档的字符数(29) ActiveDocument.CodeName ‘返回当前文档的代码名称(30) ments.Count ‘返回当前文档中的评论数(31) ActiveDocument.Endnotes.Count '返回当前文档中的尾注数(32) ActiveDocument.Fields.Count '返回当前文档中的域数目(33) ActiveDocument.Footnotes.Count ‘返回当前文档中的脚注数(34) ActiveDocument.FullName '返回当前文档的全名及所在位置(35) ActiveDocument.HasPassword '当前文档是否有密码保护(36) ActiveDocument.Hyperlinks.Count '返回当前文档中的链接数(37) ActiveDocument.Indexes.Count '返回当前文档中的索引数(38) ActiveDocument.ListParagraphs.Count '返回当前文档中项目编号或项目符号数(39) ActiveDocument.ListTemplates.Count '返回当前文档中使用的列表模板数(40) ActiveDocument.Paragraphs.Count '返回当前文档中的段落数(41) ActiveDocument.Password=XXX '设置打开文件使用的密码(42) ActiveDocument.ReadOnly '获取当前文档是否为只读属性(43) ActiveDocument.Saved '当前文档是否被保存(44) ActiveDocument.Sections.Count '当前文档中的节数(45) ActiveDocument.Sentences.Count ‘当前文档中的语句数(46) ActiveDocument.Shapes.Count '当前文档中的形状数,图形?(47) ActiveDocument.Styles.Count '当前文档中的样式数(48) ActiveDocument.Tables.Count ‘当前文档中的表格数(49) ActiveDocument.TablesOfAuthorities.Count ‘返回当前文档中的引文目录数(50) ActiveDocument.TablesOfAuthoritiesCategories.Count ‘返回当前文档中引文目录类别数(51) ActiveDocument.Tabl esOfContents.Count ‘返回当前文档中的目录数(52) ActiveDocument.TablesOfFigures.Count '返回当前文档中的图表目录数3、Paragraphs/Paragraph对象(53) Selection.Paragraphs.Count '返回所选区域的段落数(54) Selection.Paragraphs.First '返回所选区域中的第一段(55) ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档中第一段的左缩进值(56) ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距(57) ActiveDocument.Paragraphs(1).OutlineLevel ‘返回或设置当前文档中第一段的大纲级别.OutlineLevel = wdOutlineLevel2 ‘2级.OutlineLevel = wdOutlineLevel3 ‘3级(58) ActiveDocu ment.Paragraphs(1).RightIndent ‘返回当前文档中第一段的右缩进量(59) ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(60) ActiveDocument.Paragraphs(1).SpaceAfter ‘返回当前文档中第一段的段后间距(61) ActiveDocument.Paragraphs(1).Range.Text '返回当前文档中第一段的内容(62) ActiveDocument.Paragraphs(1)Local '返回当前文档中第一段应用的样式名(63) ActiveDocument.Paragraphs(1).Range.Style.Description '返回当前文档中第一段所应用样式的详细描述(64) ActiveDocument.Paragraphs(1) '返回当前文档中第一段所应用样式的字体名(65) ActiveDocument.Paragraphs(1)FarEast '返回或设置一种东亚字体名(66) ActiveDocument.Paragraphs(1).Range.Style.Font.Size '返回或设置当前文档中第一段所应用样式的字体大小(67) ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing '返回或设置字符间距(68) Selection.Words.Count '所选区域的字数Sentences对象(69) Selection.Sentences.Item(1) '所选区域中的第一句的内容Words对象(71) ActiveDocument.Words(1).Select '选择当前文档中的第一个词(72) ActiveDocument.Range.Words(1).InsertAfter "我爱你!" '在当前文档中的第一个词后插入“我爱你”4、Characters对象(73) Selection.Characters.Count '当前文档中所选区域的字符数(74) ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落5、Sections/Section对象(75) ActiveDocument.Sections.First '当前文档的第一节(76) ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距(77) ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(78) ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(79) ActiveDocument.Sections.First.PageSetup.TopMargin '当前文档第一节所在页的顶边距(80) ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小(81) ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度(82) ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度(83) ActiveDocument.Sections.Add Range:=myRange '在当前文档中添加新节(84) ActiveDocument.Sections.Item(2) '当前文档中的第二节(85) st.Range.InsertAfter "文档结束!" '在当前文档中最后一节的结尾添加文字“文档结束!”6、Range对象(86) ActiveDocument.Range(Start:=0, End:=10) '表示当前文档前10个字符所组成的一个Range对象(87) Set myRange = ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(2).Range.Start, _End:=ActiveDocument.Paragraphs(4).Range.End) '将当前文档第2段至第4段设置为一个Range对象(88) ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段(89) Selection.CopyDocuments.Add.Content.Paste '复制所选内容到新文档中(90) ActiveDocument.Bookmarks("Book1").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置(91) Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选内容移至文档中的第4行(92) Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格(93) Selection.Range.AutoFormat '为所选内容套用格式(94) = "Arial" '将当前文档的字体设置为斜体(95) ActiveDocument.Content.Select Selection.Delete '将当前文档中的内容删除其它(96) Documents.Add '添加一个新文档(97) Set myTable = ActiveDocument.Tables.Add(Selection.Range, 2, 2) '在当前文档所选区域添加一个2行2列的表格7、文件读写(98) Open "C:\my.txt" For Input As #1 '打开一个用于输入的文件并令其编号为1(99) Line Input #1, TextLine '读取被打开用于输入且编号为1的文件(100) Close #1 '关闭编号为1的文件一、新建Word引用需要首先创建一个对Word Application 对象的引用。