word vba常用语句100句

时间:2019-05-13 10:08:06下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《word vba常用语句100句》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《word vba常用语句100句》。

第一篇:word vba常用语句100句

word vba常用语句100句

很好的材料,从google搜索得到。

301)Application.ActivePrinter ‘获取当前打印机

(302)Application.Height '当前应用程序文档的高度

(303)Application.Width ‘当前应用程序文档的宽度

(304)Application.Build ‘获取Word版本号和编译序号

(305)Application.Caption ‘当前应用程序名

(306)Application.DefaultSaveFormat '返回空字符串,表示Word文档(307)Application.DisplayRecentFiles '返回是否显示最近使用的文档的状态(308)Application.Documents.Count '返回当前打开的文档数

(309)Application.FontNames.Count ‘返回当前可用的字体数

(310)Application.Left ‘返回当前文档的水平位置

(311)Application.MacroContainer.FullName '返回当前文档名,包括所在路径

Application.MacroContainer.pach'返回当前文档路径

Application.ActiveDocument.Path‘获得文件的相对路径

(312)Application.NormalTemplate.FullName '返回文档标准模板名称及所在位置(313)Application.RecentFiles.Count '返回最近打开的文档数目

(314)Application.System.CountryRegion '返回应用程序所在的地区代码(315)Application.System.FreeDiskSpace ‘返回应用程序所在磁盘可用空间(316)Application.System.HorizontalResolution '返回显示器的水平分辨率(317)Application.System.VerticalResolution '返回显示器的垂直分辨率(318)Application.System.LanguageDesignation '返回系统所使用的语言

(319)Application.System.MathCoprocessorInstalled ‘返回系统是否安装了数学协处理器(320)Application.System.OperatingSystem ‘返回当前操作系统名

(321)Application.System.ProcessorType '返回计算机处理器名

(322)Application.System.Version ‘返回操作系统的版本号

(323)Application.Templates.Count '返回应用程序所使用的模板数

(324)Application.UserName'返回应用程序用户名

(325)Application.Version ‘返回应用程序的版本号

Documents/Document对象

-------

(326)ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置

(327)ActiveDocument.Bookmarks.Count '返回当前文档中的书签数

(328)ActiveDocument.Characters.Count '返回当前文档的字符数

(329)ActiveDocument.CodeName ‘返回当前文档的代码名称

(330)ActiveDocument.Comments.Count ‘返回当前文档中的评论数

(331)ActiveDocument.Endnotes.Count '返回当前文档中的尾注数

(332)ActiveDocument.Fields.Count '返回当前文档中的域数目

(333)ActiveDocument.Footnotes.Count ‘返回当前文档中的脚注数

(334)ActiveDocument.FullName '返回当前文档的全名及所在位置

(335)ActiveDocument.HasPassword '当前文档是否有密码保护

(336)ActiveDocument.Hyperlinks.Count '返回当前文档中的链接数

(337)ActiveDocument.Indexes.Count '返回当前文档中的索引数

(338)ActiveDocument.ListParagraphs.Count '返回当前文档中项目编号或项目符号数(339)ActiveDocument.ListTemplates.Count '返回当前文档中使用的列表模板数

(340)ActiveDocument.Paragraphs.Count '返回当前文档中的段落数

(341)ActiveDocument.Password=XXX '设置打开文件使用的密码

(342)ActiveDocument.ReadOnly '获取当前文档是否为只读属性

(343)ActiveDocument.Saved '当前文档是否被保存

(344)ActiveDocument.Sections.Count '当前文档中的节数

(345)ActiveDocument.Sentences.Count ‘当前文档中的语句数

(346)ActiveDocument.Shapes.Count'当前文档中的形状数

(347)ActiveDocument.Styles.Count '当前文档中的样式数

(348)ActiveDocument.Tables.Count ‘当前文档中的表格数

(349)ActiveDocument.TablesOfAuthorities.Count ‘返回当前文档中的引文目录数

(350)ActiveDocument.TablesOfAuthoritiesCategories.Count ‘返回当前文档中引文目录类别数(351)ActiveDocument.TablesOfContents.Count ‘返回当前文档中的目录数

(352)ActiveDocument.TablesOfFigures.Count '返回当前文档中的图表目录数

Paragraphs/Paragraph对象

-------

(353)Selection.Paragraphs.Count '返回所选区域的段落数

(354)Selection.Paragraphs.First '返回所选区域中的第一段

(355)ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档中第一段的左缩进值(356)ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距

(357)ActiveDocument.Paragraphs(1).OutlineLevel‘返回或设置当前文档中第一段的大纲级别

(358)ActiveDocument.Paragraphs(1).RightIndent ‘返回当前文档中第一段的右缩进量(359)ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(360)ActiveDocument.Paragraphs(1).SpaceAfter ‘返回当前文档中第一段的段后间距(361)ActiveDocument.Paragraphs(1).Range.Text '返回当前文档中第一段的内容

(362)ActiveDocument.Paragraphs(1).Range.Style.NameLocal '返回当前文档中第一段应用的样式名

(363)ActiveDocument.Paragraphs(1).Range.Style.Description '返回当前文档中第一段所应用样

式的详细描述

(364)ActiveDocument.Paragraphs(1).Range.Style.Font.Name '返回当前文档中第一段所应用样式的字体名

(365)ActiveDocument.Paragraphs(1).Range.Style.Font.NameFarEast'返回或设置一种东亚字体名

(366)ActiveDocument.Paragraphs(1).Range.Style.Font.Size '返回或设置当前文档中第一段所应用样式的字体大小

(367)ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing '返回或设置字符间距(368)Selection.Words.Count '所选区域的字数

Sentences对象

----

(369)Selection.Sentences.Item(1)'所选区域中的第一句的内容

----

Words对象

----

(371)ActiveDocument.Words(1).Select '选择当前文档中的第一个词

(372)ActiveDocument.Range.Words(1).InsertAfter “我爱你!” '在当前文档中的第一个词后插入“我爱你”

----

Characters对象

----

(373)Selection.Characters.Count '当前文档中所选区域的字符数

(374)ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落

------

Sections/Section对象

------

(375)ActiveDocument.Sections.First '当前文档的第一节

(376)ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距

(377)ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(378)ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(379)ActiveDocument.Sections.First.PageSetup.TopMargin '当前文档第一节所在页的顶边距

(380)ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小

(381)ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度

(382)ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度

(383)ActiveDocument.Sections.Add Range:=myRange '在当前文档中添加新节

(384)ActiveDocument.Sections.Item(2)'当前文档中的第二节

(385)ActiveDocument.Sections.Last.Range.InsertAfter “文档结束!” '在当前文档中最后一节的结尾添加文字“文档结束!”

----

Range对象

----

(386)ActiveDocument.Range(Start:=0, End:=10)'表示当前文档前10个字符所组成的一个Range对象

(387)Set myRange = ActiveDocument.Range(_

Start:=ActiveDocument.Paragraphs(2).Range.Start, _

End:=ActiveDocument.Paragraphs(4).Range.End)'将当前文档第2段至第4段设置为一个Range对象

(388)ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段

(389)Selection.Copy

Documents.Add.Content.Paste '复制所选内容到新文档中

(390)ActiveDocument.Bookmarks(“Book1”).Copy Name:=“Book2” '将Book2书签复制Book1书签标记的位置

(391)Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选内容移至文档中的第4行

(392)Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格

(393)Selection.Range.AutoFormat '为所选内容套用格式

(394)ActiveDocument.Content.Font.Name = “Arial” '将当前文档的字体设置为斜体(395)ActiveDocument.Content.Select

Selection.Delete '将当前文档中的内容删除

--

其它

--

(396)Documents.Add '添加一个新文档

(397)Set myTable = ActiveDocument.Tables.Add(Selection.Range, 2, 2)'在当前文档所选区域添加一个2行2列的表格

(398)Open “C:my.txt” For Input As #1 '打开一个用于输入的文件并令其编号为1

(399)Line Input #1, TextLine'读取被打开用于输入且编号为1的文件

(400)Close #1 '关闭编号为1的文件

第二篇:Excel之VBA编程常用语句300句之二

ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 ‘改变工作表的行1的高度值设置为10(121)ThisWorkbook.Worksheets(1).Activate ‘当前工作簿中的第一个工作表被激活

(122)ThisWorkbook.Worksheets(“Sheet1”).Rows(1).Font.Bold = True ‘设置工作表Sheet1中的行1数据为粗体

(123)ThisWorkbook.Worksheets(“Sheet1”).Rows(1).Hidden = True ‘将工作表Sheet1中的行1隐藏

ActiveCell.EntireRow.Hidden = True ‘将当前工作表中活动单元格所在的行隐藏

注:同样可用于列。

(124)ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列列宽

(125)ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues)‘选中当前工作表中常量和文本单元格

ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues)‘选中当前工作表中常量和文本及错误值单元格

*******************************************************

公式与函数

(126)Application.MacroOptions Macro:=”SumPro”,Category:=4 ‘将自定义的SumPro函数指定给Excel中的“统计函数”类别

(127)Application.MacroOptions Macro:=”SumPro”, _

Description:=”First Sum,then Product” ‘为自定义函数SumPro进行了功能说明

(128)Application.WorksheetFunction.CountA(Range(“A:A”))+1 ‘获取A列的下一个空单元格(129)WorksheetFunction.CountA(Cell.EntireColumn)‘返回该单元格所在列非空单元格的数量 WorksheetFunction.CountA(Cell.EntireRow)‘返回该单元格所在行非空单元格的数量(130)WorksheetFunction.CountA(Cells)‘返回工作表中非空单元格数量

(131)ActiveSheet.Range(“A20:D20”).Formula=“=Sum(R*-19]C:R[-1+C”’对A列至D列前19个数值求和

*******************************************************

图表

(132)ActiveWindow.Visible=False

或 ActiveChart.Deselect ‘使图表处于非活动状态

(133)TypeName(Selection)=”Chart” ‘若选中的为图表,则该语句为真,否则为假

(134)ActiveSheet.ChartObjects.Delete ‘删除工作表上所有的ChartObject对象

ActiveWorkbook.Charts.Delete ‘删除当前工作簿中所有的图表工作表

*******************************************************

窗体和控件

(135)UserForms.Add(MyForm).Show ‘添加用户窗体MyForm并显示

(136)TextName.SetFocus ‘设置文本框获取输入焦点

(137)SpinButton1.Value=0 ‘将数值调节钮控件的值改为0

(138)TextBox1.Text=SpinButton1.Value ‘将数值调节钮控件的值赋值给文本框控件

SpinButton1.value=“/Val(TextBox1.Text)” ‘将文本框控件值赋给数值调节钮控件

CStr(SpinButton1.Value)=TextBox1.Text ‘数值调节钮控件和文本框控件相比较

(139)UserForm1.Controls.Count ‘显示窗体UserForm1上的控件数目

(140)ListBox1.AddItem “Command1” ‘在列表框中添加Command1

(141)ListBox1.ListIndex ‘返回列表框中条目的值,若为-1,则表明未选中任何列表框中的条目(142)RefEdit1.Text ‘返回代表单元格区域地址的文本字符串

RefEdit1.Text=ActiveWindow.RangeSelection.Address ‘初始化RefEdit控件显示当前所选单元格区域

Set FirstCell=Range(RefEdit1.Text).Range(“A1”)‘设置某单元格区域左上角单元格

(143)Application.OnTime Now + TimeValue(“00:00:15”), “myProcedure” ‘等待15秒后运行myProcedure过程

(144)ActiveWindow.ScrollColumn=ScrollBarColumns.Value ‘将滚动条控件的值赋值给ActiveWindow对象的ScrollColumn属性

ActiveWindow.ScrollRow=ScrollBarRows.Value ‘将滚动条控件的值赋值给ActiveWindow对象的ScrollRow属性

(145)UserForm1.ListBox1.AddItem Sheets(“Sheet1”).Cells(1,1)‘将单元格A1中的数据添加到列表框中

ListBox1.List=Product ‘将一个名为Product数组的值添加到ListBox1中

ListBox1.RowSource=”Sheet2!SumP” ‘使用工作表Sheet2中的SumP区域的值填充列表框(146)ListBox1.Selected(0)‘选中列表框中的第一个条目(注:当列表框允许一次选中多个条目时,必须使用Selected属性)

(147)ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目

*******************************************************

对象

Application对象

(148)Application.UserName ‘返回应用程序的用户名

(149)Application.Caller ‘返回代表调用函数的单元格

(150)Application.Caller.Parent.Parent ‘返回调用函数的工作簿名称

(151)Application.StatusBar=”请等待……” ‘将文本写到状态栏

Application.StatusBar=”请等待……” & Percent & “% Completed” ‘更新状态栏文本,以变量Percent代表完成的百分比

Application.StatusBar=False ‘将状态栏重新设置成正常状态

(152)Application.Goto Reference:=Range(“A1:D4”)‘指定单元格区域A1至D4,等同于选择“编辑——定位”,指定单元格区域为A1至D4,不会出现“定位”对话框

(153)Application.Dialogs(xlDialogFormulaGoto).Show ‘显示“定位”对话框,但定位条件按钮无效

(154)Application.Dialogs(xlDialogSelectSpecial).Show ‘显示“定位条件”对话框

(155)Application.Dialogs(xlDialogFormatNumber).show ‘显示“单元格格式”中的“数字”选项卡 Application.Dialogs(xlDialogAlignment).show ‘显示“单元格格式”中的“对齐”选项卡

Application.Dialogs(xlDialogFontProperties).show ‘显示“单元格格式”中的“字体”选项卡 Application.Dialogs(xlDialogBorder).show ‘显示“单元格格式”中的“边框”选项卡

Application.Dialogs(xlDialogPatterns).show ‘显示“单元格格式”中的“图案”选项卡

Application.Dialogs(xlDialogCellProtection).show ‘显示“单元格格式”中的“保护”选项卡 注:无法一次显示带选项卡的“单元格格式”对话框,只能一次显示一个选项卡。

(156)Application.Dialogs(xlDialogFormulaGoto).show Range(“b2”), True ‘显示“引用位置”的默认单元格区域并显示引用使其出现在窗口左上角(注:内置对话框参数的使用)

(157)Application.CommandBars(1).Controls(2).Controls(16).Execute ‘执行“定位”话框,相当于选择菜单“编辑——定位”命令

(158)Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”))‘返回一个垂直的数组

(159)Application.Version ‘返回使用的Excel版本号

(160)Application.Cursor = xlNorthwestArrow ‘设置光标形状为北西向箭头

Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形

Application.Cursor = xlWait ‘设置光标形状为沙漏(等待)形

Application.Cursor = xlDefault ‘恢复光标的默认设置

(161)Application.WindowState ‘返回窗口当前的状态

Application.WindowState = xlMinimized ‘窗口最小化

Application.WindowState = xlMaximized ‘窗口最大化

Application.WindowState = xlNormal ‘窗口正常状态

(162)Application.UsableHeight ‘获取当前窗口的高度

Application.UsableWidth ‘获取当前窗口的宽度

(163)Application.ActiveCell.Address ‘返回活动单元格的地址(注:返回的是绝对地址)(164)Application.ActivePrinter ‘返回当前打印机的名称

(165)Application.ActiveSheet.Name ‘返回活动工作表的名称

(166)Application.ActiveWindow.Caption ‘返回活动窗口的标题

(167)Application.ActiveWorkbook.Name ‘返回活动工作簿的名称

(168)Application.Selection.Address ‘返回所选区域的地址

(169)Application.ThisWorkbook.Name ‘返回当前工作簿的名称

(170)Application.CalculationVersion ‘返回Excel计算引擎版本(右边四位数字)及Excel版本(左边两位数字)

(171)Application.MemoryFree ‘以字节为单位返回Excel允许使用的内存数(不包括已经使用的内存)

(172)Application.MemoryUsed ‘以字节为单位返回Excel当前使用的内存数

(173)Application.MemoryTotal ‘以字节为单位返回Excel可以使用的内存数(包括已使用的内存,是MemoryFree和MemoryUsed的总和)

(174)Application.OperatingSystem ‘返回所使用的操作系统的名称和版本

(175)Application.OrganizationName ‘返回Excel产品登记使用的组织机构的名称

(176)Application.FindFormat ‘查找的格式种类

Application.ReplaceFormat ‘替换查找到的内容的格式种类

ActiveSheet.Cells.Replace What:=” “, _

Replacement:=” “,SearchFormat:=True,ReplaceFormat:=True ‘替换查找到的格式

(177)Application.Interactive=False ‘忽略键盘或鼠标的输入

(178)Application.Evaluate(“Rate”)‘若在工作表中定义了常量0.06的名称为”Rate”,则本语句将返回值0.06

(179)Application.OnUndo “Undo Option”,“Undo Procedure” ‘选择UndoOption后,将执行Undo Procedure过程

*******************************************************

Range对象

(180)Range(A1:A10).value=“/Application.WorksheetFunction.Transpose(MyArray)” ‘将一个含有10个元素的数组转置成垂直方向的工作表单元格区域(A1至A10)

注:因为当把一维数组的内容传递给某个单元格区域时,该单元格区域中的单元格必须是水平方向的,即含有多列的一行。若必须使用垂直方向的单元格区域,则必须先将数组进行转置,成为垂直的。

(181)Range(“A65536”).End(xlUp).Row+1 ‘返回A列最后一行的下一行

(182)rng.Range(“A1”)‘返回区域左上角的单元格

(183)cell.Parent.Parent.Worksheets ‘访问当前单元格所在的工作簿

(184)Selection.Font.Bold=Not Selection.Font.Bold ‘切换所选单元格是否加粗

(185)ActiveSheet.Range(“A:B”).Sort Key1:=Columns(“B”), Key2:=Columns(“A”), _

Header:=xlYes ‘两个关键字排序,相邻两列,B列为主关键字,A列为次关键字,升序排列(186)cell.Range(“A1”).NumberFormat ‘显示单元格或单元格区域中的第一个单元格的数字格式

(187)cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式 或cell.HasFormula ‘工作表中单元格是否含有公式

(188)Cell.EntireColumn ‘单元格所在的整列

Cell.EntireRow ‘单元格所在的整行

(189)rng.Name.Name ‘显示rng区域的名称

(190)rng.Address ‘返回rng区域的地址

(191)cell.Range(“A1”).Formula ‘返回包含在rng区域中左上角单元格中的公式。

注:若在一个由多个单元格组成的范围内使用Formula属性,会得到错误;若单元格中没有公式,会得到一个字符串,在公式栏中显示该单元格的值。

(192)Range(“D5:D10”).Cells(1,1)‘返回单元格区域D5:D10中左上角单元格

(193)ActiveCell.Row ‘活动单元格所在的行数

ActiveCell.Column ‘活动单元格所在的列数

(194)Range(“A1:B1”).HorizontalAlignment = xlLeft ‘当前工作表中的单元格区域数据设置为左对齐

(195)ActiveSheet.Range(“A2:A10”).NumberFormat=”#,##0” ‘设置单元格区域A2至A10中数值格式

(196)rng.Replace “ “,”0” ‘用0替换单元格区域中的空单元格

*******************************************************

Collection与object

(197)Dim colMySheets As New Collection

Public colMySheets As New Collection ‘声明新的集合变量

(198)Set MyRange=Range(“A1:A5”)‘创建一个名为MyRange的对象变量

(199)

第三篇:Excel VBA常用代码总结1

Excel VBA常用代码总结1

改变背景色

Range(“A1”).Interior.ColorIndex = xlNone ColorIndex一览

  改变文字颜色 获取单元格 Range(“A1”).Font.ColorIndex = 1 Cells(1, 2)Range(“H7”) 获取范围

Range(Cells(2, 3), Cells(4, 5))Range(“a1:c3”)'用快捷记号引用单元格

Worksheets(“Sheet1”).[A1:B5]  选中某sheet SetNewSheet = Sheets(“sheet1”)NewSheet.Select  选中或激活某单元格

'“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。

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

 获得文档的路径和文件名

ActiveWorkbook.Path

'路徑 ActiveWorkbook.Name

'名稱

ActiveWorkbook.FullName '路徑+名稱 '或将ActiveWorkbook换成thisworkbook

    隐藏文档 禁止屏幕更新

禁止显示提示和警告消息 文件夹做成 Application.Visible = False Application.ScreenUpdating = False Application.DisplayAlerts = False strPath = “C:temp” MkDirstrPath   状态栏文字表示 双击单元格内容变换 Application.StatusBar = “计算中”

PrivateSubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)If(Target.Cells.Row>= 5AndTarget.Cells.Row<= 8)Then IfTarget.Cells.Value = “●”Then Target.Cells.Value = “" Else

Target.Cells.Value = ”●“ EndIf

Cancel = True EndIf End Sub

 文件夹选择框方法1

SetobjShell = CreateObject(”Shell.Application“)SetobjFolder = objShell.BrowseForFolder(0, ”文件“, 0, 0)IfNotobjFolderIsNothing

Then path= objFolder.self.Path&”“ endif SetobjFolder = Nothing SetobjShell = Nothing

 文件夹选择框方法2(推荐)

PublicFunctionChooseFolder()AsString DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFolderPicker)WithdlgOpen.InitialFileName = ThisWorkbook.path&”“ If.Show =-1Then

ChooseFolder =.SelectedItems(1)EndIf EndWith

SetdlgOpen = Nothing End Function

'使用方法例:

Dim path AsString path = ChooseFolder()If path <>”“Then MsgBox”open folder“ EndIf

 文件选择框方法

PublicFunctionChooseOneFile(OptionalTitleStrAsString = ”Please choose a file“, OptionalTypesDecAsString = ”*.*“, OptionalExtenAsString = ”*.*“)AsString

DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFilePicker)WithdlgOpen.Title = TitleStr.Filters.Clear.Filters.AddTypesDec, Exten.AllowMultiSelect = False

.InitialFileName = ThisWorkbook.Path If.Show =-1Then

'.AllowMultiSelect = True ' For Each vrtSelectedItemIn.SelectedItems ' MsgBox ”Path name: “ &vrtSelectedItem ' Next vrtSelectedItem

ChooseOneFile =.SelectedItems(1)EndIf EndWith

SetdlgOpen = Nothing End Function

 某列到关键字为止循环方法1(假设关键字是end)SetCurrentCell = Range(”A1“)DoWhileCurrentCell.Value<>”end“ „„

SetCurrentCell = CurrentCell.Offset(1, 0)Loop

 某列到关键字为止循环方法2(假设关键字是空字符串)i = StartRow DoWhileCells(i, 1)<>”“ „„

i = i + 1 Loop

 ”For Each...Next 循环(知道确切边界)ForEach c InWorksheets(“Sheet1”).Range(“A1:D10”).Cells

IfAbs(c.Value)<0.01Thenc.Value = 0 Next

 “For Each...Next 循环(不知道确切边界),在活动单元格周围的区域内循环

ForEach c InActiveCell.CurrentRegion.Cells IfAbs(c.Value)<0.01Thenc.Value = 0 Next

 某列有数据的最末行的行数的取得(中间不能有空行)lonRow=1

DoWhileTrim(Cells(lonRow, 2).Value)<>”“ lonRow = lonRow + 1 Loop

lonRow11 = lonRow1164)比如i=A的时候,Asc(it >= num * 1000 DoEvents Loop End Sub

'***************************************************************

使用方法: delay 3'3表示秒数

 杀掉某程序执行的所有进程

SubKillWord()

Dim Process

ForEach Process InGetObject(”winmgmts:“).ExecQuery(”select * from Win32_Process where name='WINWORD.EXE'“)Process.Terminate(0)Next

End Sub

 监视某单元格的变化

这里最需要注意的问题就是,如果在这个事件里对单元格进行改变,会继续出发此事件变成死循环。

所以要在对单元格进行变化之前加上Application.EnableEvents = False,变完之后再改为True。

PrivateSubWorksheet_Change(ByVal Target As Range)OnErrorGoTo Err Application.EnableEvents = False Dim c SetdicKtoW = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 2)SetdicKtoX = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 3)ForEach c In Target Ifc.Column = 11Then 'MsgBoxc.Value

Me.Range(”W“&c.Row).Value = GetDic(dicKtoW, c.Value)Me.Range(”X“&c.Row).Value = GetDic(dicKtoX, c.Value)EndIf Next SetdicKtoW = Nothing SetdicKtoX = Nothing

Application.EnableEvents = True Exit Sub Err: MsgBox(”Error!Please contact macro developer.“)Application.EnableEvents = True End Sub

 On Error的用法

1.一般用法

OnErrorGoTo Label 各种代码 exit sub Label: msgboxErr.Description 其他错误处理

2.对于某段代码单独处理 OnErrorResumeNext 需要监视的代码

IfErr.Number<>0Then MsgBoxErr.Description EndIf

OnErrorGoTo0

3.上述两种的结合 OnErrorResumeNext 需要监视的代码

IfErr.Number<>0Then MsgBoxErr.Description Goto Label EndIf

OnErrorGoTo0 exit sub Label: 其他错误处理

 EXCEL的分组功能和展开收缩功能

'将A列到C列进行分组

Range(”A:C“).Columns.Group

'默认情况下,分组后的A到C列会是展开状态,如果想让A到C列收缩 Range(”A:C").EntireColumn.Hidden=True

第四篇:实用的EXCEL VBA编程总结

实用的EXCEL VBA编程小结:

最近单位内部的项目里要用到些报表EXCEL的生成,虽说JAVA 的POI可以有这能力,但觉得还是可能比较麻烦,因此还是转用.net来搞,用Visual Studio2003配合office 2003,用到了一些VBA,因此小结并归纳之,选了些资料归纳在这里,以备今后查考

首先创建 Excel 对象,使用ComObj:

Dim ExcelID as Excel.Application

Set ExcelID as new Excel.Application

1)显示当前窗口:

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.ActiveSheet.Columns[4].PageBreak := 0;

11)指定边框线宽度:

ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;

1-左 2-右 3-顶 4-底 5-斜(¥)6-斜(/)

12)清除第一行第四列单元格公式:

ExcelID.ActiveSheet.Cells[1,4].ClearContents;

13)设置第一行字体属性:

ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';

ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;

ExcelID.ActiveSheet.Rows[1].Font.Bold := True;

ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;

14)进行页面设置:

a.页眉:

ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:

ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';

c.页眉到顶端边距2cm:

ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;

d.页脚到底端边距3cm:

ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;

e.顶边距2cm:

ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;

f.底边距2cm:

ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;

g.左边距2cm:

ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;

h.右边距2cm:

ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;

i.页面水平居中:

ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;

j.页面垂直居中:

ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;

k.打印单元格网线:

ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;

15)拷贝操作:

a.拷贝整个工作表:

ExcelID.ActiveSheet.Used.Range.Copy;

b.拷贝指定区域:

ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;

c.从A1位置开始粘贴:

ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;

d.从文件尾部开始粘贴:

ExcelID.ActiveSheet.Range.PasteSpecial;

16)插入一行或一列:

a.ExcelID.ActiveSheet.Rows[2].Insert;

b.ExcelID.ActiveSheet.Columns[1].Insert;

17)删除一行或一列:

a.ExcelID.ActiveSheet.Rows[2].Delete;

b.ExcelID.ActiveSheet.Columns[1].Delete;

18)打印预览工作表:

ExcelID.ActiveSheet.PrintPreview;

19)打印输出工作表:

ExcelID.ActiveSheet.PrintOut;

20)工作表保存:

If not ExcelID.ActiveWorkBook.Saved then

ExcelID.ActiveSheet.PrintPreview End if

21)工作表另存为:

ExcelID.SaveAs('C:¥Excel¥Demo1.xls');

22)放弃存盘:

ExcelID.ActiveWorkBook.Saved := True;

23)关闭工作簿:

ExcelID.WorkBooks.Close;

24)退出 Excel:

ExcelID.Quit;

25)设置工作表密码:

ExcelID.ActiveSheet.Protect “123”, DrawingObjects:=True, Contents:=True, Scenarios:=True

26)EXCEL的显示方式为最大化

ExcelID.Application.WindowState = xlMaximized

27)工作薄显示方式为最大化

ExcelID.ActiveWindow.WindowState = xlMaximized

28)设置打开默认工作薄数量

ExcelID.SheetsInNewWorkbook = 3

29)'关闭时是否提示保存(true 保存;false 不保存)

ExcelID.DisplayAlerts = False

30)设置拆分窗口,及固定行位置

ExcelID.ActiveWindow.SplitRow = 1

ExcelID.ActiveWindow.FreezePanes = True

31)设置打印时固定打印内容

ExcelID.ActiveSheet.PageSetup.PrintTitleRows = “$1:$1”

32)设置打印标题

ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = “"

33)设置显示方式(分页方式显示)

ExcelID.ActiveWindow.View = xlPageBreakPreview

34)设置显示比例

ExcelID.ActiveWindow.Zoom = 100

35)让Excel 响应 DDE 请求

Ex.Application.IgnoreRemoteRequests = False

用VB操作EXCEL

Private Sub Command3_Click()

On Error GoTo err1

Dim i As Long

Dim j As Long

Dim objExl As Excel.Application '声明对象变量

Me.MousePointer = 11 '改变鼠标样式

Set objExl = New Excel.Application '初始化对象变量

objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1

objExl.Workbooks.Add '增加一个工作薄

objExl.Sheets(objExl.Sheets.Count).Name = ”book1“ '修改工作薄名称

objExl.Sheets.Add , objExl.Sheets(”book1“)‘增加第二个工作薄在第一个之后

objExl.Sheets(objExl.Sheets.Count).Name = ”book2“

objExl.Sheets.Add , objExl.Sheets(”book2“)‘增加第三个工作薄在第二个之后

objExl.Sheets(objExl.Sheets.Count).Name = ”book3“

objExl.Sheets(”book1“).Select '选中工作薄

For i = 1 To 50 '循环写入数据

For j = 1 To 5

If i = 1 Then

objExl.Selection.NumberFormatLocal = ”@“ '设置格式为文本

objExl.Cells(i, j)= ” E “ & i & j Else

objExl.Cells(i, j)= i & j End If Next Next

objExl.Rows(”1:1“).Select '选中第一行

objExl.Selection.Font.Bold = True '设为粗体

objExl.Selection.Font.Size = 24 '设置字体大小

objExl.Cells.EntireColumn.AutoFit '自动调整列宽

objExl.ActiveWindow.SplitRow = 1 '拆分第一行

objExl.ActiveWindow.SplitColumn = 0 '拆分列

objExl.ActiveWindow.FreezePanes = True '固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = ”$1:$1“ '设置打印固定行

objExl.ActiveSheet.PageSetup.PrintTitleColumns

=

”“

'objExl.ActiveSheet.PageSetup.RightFooter = ”打印时间: “ & _

Format(Now, ”yyyy年mm月dd日 hh:MM:ss“)

objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式

objExl.ActiveWindow.Zoom = 100 '设置显示大小

'给工作表加密码

objExl.ActiveSheet.Protect ”123", DrawingObjects:=True, _

Contents:=True, Scenarios:=True

objExl.Application.IgnoreRemoteRequests = False

objExl.Visible = True '使EXCEL可见

objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化

objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化

objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个

Set objExl = Nothing '清除对象

Me.MousePointer = 0 '修改鼠标

题 Exit Sub err1:

objExl.SheetsInNewWorkbook = 3

objExl.DisplayAlerts = False '关闭时不提示保存

objExl.Quit '关闭EXCEL

objExl.DisplayAlerts = True '关闭时提示保存

Set objExl = Nothing

Me.MousePointer = 0 End Sub

第五篇:vba自定义函数小结

小结:

函数参数前面标记byval,实现的是实参与形参之间的值传递,即形参具有了实参的值或者说建立了一个实参的副本给了形参,这样对形参的操作不会影响实参;

函数参数前面标记byref,实现的是实参与形参之间的引用传递,这样对形参的操作会影响实参,或者说对形参的操作等同于对实参的操作;

在函数内部使用“r=形参”,实现的是把形参的副本给r,在函数中对r操作不会影像形参,如果使用“set r=形参”,那么对r的操作会影响形参,这里实现的效果是r只是形参的一个别名而已,所以对r的操作等同于对形参的操作。

在函数中形参前面不标记byref和byval,默认是引用传递byref,但是这种情况下如果实参是excel中worksheet的range区域,则默认是值传递。

有时调试结果不符合预期,比如值传递,对””r=形参”中的r操作,居然影响形参了,这可能是由于excel一时程序错乱导致,关闭重启就好了。

Public Function tjbcf(rng)

r = rng

'Set r = rng'注意带着set是错误的 k = 0 If UBound(r, 1)> 1 And UBound(r, 2)= 1 Then For i = 1 To UBound(r, 1)f = 0 For j = 1 To i1 If r(1, i)= r(1, j)Then f = 1 Exit For End If Next j If f = 0 And r(1, i)<> “" Then k = k + 1 End If Next i End If

If UBound(r, 1)> 1 And UBound(r, 2)> 1 Then For i = 1 To UBound(r, 1)For j = 1 To UBound(r, 2)If r(i, j)= ”“ Then f = 1 GoTo kk End If f = 0 For m = 1 To i1 If r(i, j)= r(i, n)Then f = 1 GoTo kk End If Next n kk: If f = 0 Then k = k + 1 End If Next j Next i End If

tjbcf = k

End Function

Public Function getnum(str, m)ss = ”“ For i = m To Len(str)If InStr(”0123456789.“, Mid(str, i, 1))<> 0 Then ss = ss & Mid(str, i, 1)Else GoTo kk End If Next i kk: getnum = Val(ss)'注意是val不是value,在sheet中是value函数,在vb中则是val函数 End Function Public Function getnum2(str, m)ss = ”“ f = 0 For i = m To Len(str)If InStr(”0123456789.“, Mid(str, i, 1))<> 0 Then ss = ss & Mid(str, i, 1)Else If f = 1 And ss <> ”“ Then GoTo kk End If f = 1 End If Next i kk: getnum2 = Val(ss)End Function

Public Function NewMmult(a, b)

a1 = a

'把range a的值赋给a1,a是几行几列的range,a1就是 几行几列的数组。注意a1是一个variant数组,即a1中的不同元素可以属性不同,a1中某个元素是字符,另一个可以是整数。

b1 = b

'把range b的值赋给b1 For i = 1 To UBound(a1, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 For j = 1 To UBound(a1, 2)

' UBound(a1, 2)指的是数组a1第2维度的大小,即a1的列数 If a1(i, j)= ”“ Then

'判断a1(i,j)是不是空白,如果是,那就赋0值。a1(i, j)= 0 End If Next j Next i

For i = 1 To UBound(b1, 1)For j = 1 To UBound(b1, 2)If b1(i, j)= ”“ Then b1(i, j)= 0 End If Next j Next i

NewMmult = Application.MMult(a1, b1)

End Function

Public Function sim(str1, str2)

If Len(str2)= 0 Then

sim = 0

GoTo kk

End If

sim = 0

For i = 1 To Len(str2)

If InStr(str1, Mid(str2, i, 1))<> 0 Then

sim = sim + 1

End If

Next i

sim = sim / Len(str2)kk: End Function Public Function sima(ByVal str1, ByVal str2)

If Len(str2)= 0 Then

sima = 0

GoTo kk

End If

sima = 0

l = Len(str2)

For i = 1 To Len(str2)

If InStr(str1, Mid(str2, i, 1))<> 0 Then

sima = sima + 1

str1 = Application.WorksheetFunction.Substitute(str1, Mid(str2, i, 1), ”“, 1)

End If

Next i

sima = sima / l kk: End Function

Public Function mcc(rng, rng1, str1, Optional rng2 = ”“, Optional str2, Optional rng3 = ”“, Optional str3, Optional rng4 = ”“, Optional str4, Optional rng5 = ”“, Optional str5)r = rng r1 = rng1 r2 = rng2 r3 = rng3 r4 = rng4 r5 = rng5 mcc = ”“

If Application.CountA(rng2)= 1 Then For i = 1 To UBound(r, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(i, 1)= str1)Then mcc = r(i, 1)GoTo kk End If Next i End If

If Application.CountA(rng3)= 1 Then For i = 1 To UBound(r, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(i, 1)= str1, r2(i, 1)= str2)Then mcc = r(i, 1)GoTo kk End If Next i End If

If Application.CountA(rng4)= 1 Then For i = 1 To UBound(r, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(i, 1)= str1, r2(i, 1)= str2, r3(i, 1)= str3)Then mcc = r(i, 1)GoTo kk End If Next i End If

If Application.CountA(rng5)= 1 Then For i = 1 To UBound(r, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(i, 1)= str1, r2(i, 1)= str2, r3(i, 1)= str3, r4(i, 1)= str4)Then mcc = r(i, 1)GoTo kk End If Next i End If

For i = 1 To UBound(r, 1)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(i, 1)= str1, r2(i, 1)= str2, r3(i, 1)= str3, r4(i, 1)= str4, r5(i, 1)= str5)Then mcc = r(i, 1)GoTo kk End If Next i

kk: End Function

Public Function mccd(rng, rng1, str1, Optional rng2 = ”“, Optional str2, Optional rng3 = ”“, Optional str3, Optional rng4 = ”“, Optional str4, Optional rng5 = ”“, Optional str5)

r = rng r1 = rng1 r2 = rng2 r3 = rng3 r4 = rng4 r5 = rng5 mccd = ”"

If Application.CountA(rng2)= 1 Then

For i = 1 To UBound(r, 2)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(1, i)= str1)Then

mccd = r(1, i)GoTo kk End If Next i End If

If Application.CountA(rng3)= 1 Then For i = 1 To UBound(r, 2)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(1, i)= str1, r2(1, i)= str2)Then mccd = r(1, i)GoTo kk End If Next i End If

If Application.CountA(rng4)= 1 Then For i = 1 To UBound(r, 2)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(1, i)= str1, r2(1, i)= str2, r3(1, i)= str3)Then mccd = r(1, i)GoTo kk End If Next i End If

If Application.CountA(rng5)= 1 Then For i = 1 To UBound(r, 2)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(1, i)= str1, r2(1, i)= str2, r3(1, i)= str3, r4(1, i)= str4)Then mccd = r(1, i)GoTo kk End If Next i End If

For i = 1 To UBound(r, 2)

' UBound(a1, 1)指的是数组a1第1维度的大小,即a1的行数 If Application.WorksheetFunction.And(r1(1, i)= str1, r2(1, i)= str2, r3(1, i)= str3, r4(1, i)= str4, r5(1, i)= str5)Then mccd = r(1, i)GoTo kk End If Next i

kk: End Function

Public Function nsim(str, rng)'r1 = rng 'r2 = rng 'str1 = str 'str2 = str

v = sima(str, r(1, 1))+ sima(r(1, 1), str2)'str1 = str

‘这里不再需要赋值,因为sima设置的是值传递byval,sima调用实参str和r(1,1)不影响实参。'str2 = str k = 1 For i = 2 To UBound(r, 1)m =(sima(str, r(i, 1))+ sima(r(i, 1), str))'str1 = str 'str2 = str If v < m Then k = i v = m End If Next i nsim = r(k, 1)End Function

下载word vba常用语句100句word格式文档
下载word vba常用语句100句.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    01-Excel VBA 学习总结 - 基础知识(含5篇)

    Excel VBA 学习总结 - 基础知识1.什么是VBA? 当前辈们使用Excel的时候,他们惊奇的发现:Excel那是相当的彪悍,几乎任何的数据分析与处理,它都可以"近乎完美"(实际上不可能完美)完......

    在WORD中用VBA制作作文稿纸

    在WORD中用VBA制作作文稿纸 语文考试中,经常用到作文稿纸,Word中带有稿纸模板,但有诸多限制(如纸型、行列数等相对固定),在试卷排版时颇为不便。其实,我们可以利用Word的VBA编程,通......

    PowerPoint 课件中基于VBA的习题练习

    PowerPoint 课件中基于VBA的习题练习陈柳 1 (西南中文大学数学与计算机系 ,重庆634001) 摘要: 主要阐述如何在PowerPoint课件中应用VBA调用数据库来设计习题。 关键字: VBA ;Powe......

    vba单元格区域引用方式的小结

    vba单元格区域引用方式的小结 在使用ExcelVBA进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作。所谓单元格区域,指的是单个的单元格......

    EXCEL VBA工作表操作全能方法小结

    EXCEL VBA工作表操作全能方法小结 [示例04-01]增加工作表(Add方法) Sub AddWorksheet() MsgBox "在当前工作簿中添加一个工作表" Worksheets.Add MsgBox "在当前工作簿......

    Office VBA 中的日期和时间操作小结

    Office VBA 中的日期和时间操作小结 1、 获取日期变量中的日期部分或时间部分的方法; a) Today=CDate(Format$(Now, "yyyy-mm-dd"))‘获取今日,得到一个只有日期没有时间的日......

    EXCEL VBA工作表操作全能方法小结

    EXCELVBA工作表操作全能方法小结[示例04-01]增加工作表(Add方法) SubAddWorksheet() MsgBox"在当前工作簿中添加一个工作表" Worksheets.Add MsgBox"在当前工作簿中的工作表......

    语句

    进化不完全的生命体,基因突变的外星人,幼稚园程度的高中生,先天蒙古症的青蛙头, 圣母峰雪人的弃婴,化粪池堵塞的凶手,非洲人搞上黑的后裔,阴阳失调的黑猩猩, 被诺亚方舟压过的河马,新......