下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VBA

VBA.doc

VBA

灵魂深处
2012-10-07 0人阅读 举报 0 0 暂无简介

简介:本文档为《VBAdoc》,可适用于IT/计算机领域

VBA介绍VBA从VisualBasic中派生适用于各种Windows应用程序有如下优点:、VBA是一种通用程序语言通过它可以共享Microsoft的各种软件(如Excel、Word、Access)……而且随着其它的一些软件(如大名鼎鼎的AutoCAD)等对VBA的支持这些软件也已进入到了VBA的控制范围、可以将用VBA编写的程序复制到VisualBasic中调试并运行从而实现用VisualBasic来控制有关的应用程序、VBA提供的大量内部函数大大简化了用户的操作。基本概念篇工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbookWorkbooks集合包含Excel中所有打开的Excel文件Workbook对应Workbooks中的成员即Excel文件ActiveWorkbook代表活动状态的工作簿即当前显示的Excel文件ThisWorkbook代表其中有VisualBasic代码正在运行的工作簿。工作表:Worksheets、Worksheet、ActiveSheetWorksheets集合包含工作簿(Excel文件)中所有的工作表Worksheet工作薄(Excel文件)中的一个工作表ActiveSheet代表当前处于的活动状态工作表无活动工作表时返回Nothing说明:、在Workbooks和Worksheets中可以用(表名index)来引用具体的对象、Index的最小序号为最大为ExpressionCount索引号会随着表的位置而变图表:Chart、Charts、ChartObject、ChartObjects、ActiveChartCharts所有图表工作表的集合(在标签栏上有名字)不包括嵌入式图表或对话框编辑表中的图表Chart工作簿中的所有图表包括嵌入式图表(包含在ChartObject中)ChartObjects嵌入式图表的集合。ChartObject嵌入式图表可以作为Chart对象的容器可以控制工作表上嵌入式图表的外观和尺寸。ActiveChart活动图表图表工作表为活动工作表时还可以通过ActiveSheet属性引用之。说明:、在Charts和ChartObjects中可以用(图表名index)引用单个对象、index从开始最大为ExpressionCount索引号会根据实际情况变动、对于Charts(index)表示在Excel文件标签上的图表工作表的位置。ChartObjects(index)对应当前表上的嵌入式图表单元格:Cells、ActiveCell、Range、AreasCells(row,column)单个单元格省略参数时表示整张工作表ActiveCell活动单元格也可为指定表上的活动单元格Range(“”)区域可以是单元格、行、列、(多个)选定区域(连续的)、三维区域。Areas(RangeRange…)区域的集合成员是Range对象说明:、可以将Range和Cells结合使用、Range()Cells(row,column)表示该区域的行列交叉处单元格、Areas(index)代表具体的Range区域最大为Areascount行与列:Rows、Columns、Row、ColumnRow、Column区域中的首行和首列值十进制数字Rows、Columns引用行和列作为属性时表示选定区域包含的行和列数对于多区域的引用只返回第一个区域的行列数如Range(“A:B”,”C:D”)Column返回值为不是Rows、Columns无参数时分别代表所有行和所有列工作表与工作薄操作添加SheetsAddbefore:=Sheets()'在第工作表前添加新工作表SheetsAddafter:=Sheets(SheetsCount)'在最后工作表后添加新工作表移动ActiveSheetMovebefore:=Sheets()'将当前工作表移动至第工作表之前命名ActiveSheetName="工作表名"'将当前工作表命名为"工作表名"删除ActiveSheetDeleteApplicationDisplayAlerts=False关闭Excel的警告提示保存ActiveWorkbookSave'保存当前工作簿另存为ActiveWorkbookSaveAsFilename:=存盘文件名'当前工作簿另存为"工作表名xls"说明:另存为未指定路径时保存在该工作簿的打开目录下。有文件存在时可关闭提示以免干扰处理单元格添加、删除、复制、剪切、粘贴单元格Range("C")InsertShift:=xlDown'在C单元格处添加一新单元格原C格下移Range("D")InsertShift:=xlToRight'在D单元格处添加一新单元格原D格右移Rows()EntireRowInsert'在第行前添加一空白行原第行默认下移Range("B")EntireRowDelete'删除第行Columns()EntireColumnInsert'在C列前添加一空白列原C列默认右移Range("C")EntireColumnDelete'删除C列Columns("A:D")DeleteShift:=xlToLeft'删除A列至D列其右侧列默认左移Rows(":")DeleteShift:=xlUp'删除第行至第行其下方行默认上移Range("D")SelectRange("B:C")Copy'复制B至C单元格区域Cells(,)Cut'剪切B单元格ActiveSheetPaste'自D单元格起粘贴剪贴板中的内容直接赋值与引用:DimIAsIntegerI=Worksheets("Sheet")Cells(,)ActiveCell=I'以I为当前单元格赋值用公式赋值ActiveCellFormula="=AVERAGE(RC:RC)"引用其它工作薄或工作表中的单元格Range("E")Formula="=SUM(Sheet!RC:RC)"Worksheets("Sheet")ActiveCellFormula="=Max('剖面'!D:D)"有歧义字符用’’括起来注意:被引用的工作表名中含有某些可能引起公式歧义的字符时需要用单引号'将工作表名括起来。工作薄名用“【】”括起来有歧义字符时也需要用单引号括起来添加批注ActiveCellAddComment'添加批注ActiveCellCommentTextText:=“临时”'写入批注文本ActiveCellCommentVisible=False'隐藏批注SelectionFontSize=SubAddComments()'自动对ActiveSheet所有有公式单元格加上批注SetRG=CellsSpecialCells(xlCellTypeFormulas)ForEachcInRGcAddCommentcCommentTextText:=cFormulaNextcEndSubSubDeComments()'自动取消所有批注SetRG=CellsSpecialCells(xlCellTypeFormulas)ForEachcInRGcClearCommentsNextcEndSub图表工作表图表以下为一添加工作表图表的实例。ChartsAddafter:=Worksheets("Sheet")'在"Sheet"工作表之后添加新图表工作表ActiveChartChartType=xlXYScatterSmooth'图表类型为XY平滑线散点图ActiveChartSetSourceDataSource:=Sheets("结点坐标")Range("A:B"),PlotBy:=xlColumns'图表数据来源于"结点坐标"工作表的A至B单元格且按列绘图。ActiveChartLocationWhere:=xlLocationAsNewSheetWithActiveChartHasTitle=True‘图表有标题ChartTitleCharactersText="节点坐标"'图表标题"节点坐标"Axes(xlCategory,xlPrimary)HasTitle=TrueAxes(xlCategory,xlPrimary)AxisTitleCharactersText="x"'x轴标题"x"Axes(xlValue,xlPrimary)HasTitle=TrueAxes(xlValue,xlPrimary)AxisTitleCharactersText="y"'y轴标题"y"EndWithWithActiveChartAxes(xlCategory)HasMajorGridlines=True'显示x轴主网格线默认情况下为显示HasMinorGridlines=True'显示x轴次网格线默认情况下为不显示EndWithWithActiveChartAxes(xlValue)HasMajorGridlines=True'标出x轴主网格值默认情况下为标注HasMinorGridlines=False'取消x轴次网格值标注默认情况下为不标注EndWithActiveChartLegendPosition=xlRight'图例显示在图表右侧嵌入式图表嵌入式图表仅在添加方式及引用格式上与工作表图表有所不同设置基本类似。详见下例。Set嵌入表=ActiveSheetChartObjectsAdd(,,,)'在当前表(,)坐标添加*嵌入图表嵌入表ChartChartType=xlColumnClustered'图表类型为簇状柱形图嵌入表ChartSetSourceDataSource:=Sheets()Range("A:B"),PlotBy:=xlRows'设置图表数据来源With嵌入表ChartHasTitle=False'无图表标题Axes(xlCategory,xlPrimary)HasTitle=False'无x轴标题Axes(xlValue,xlPrimary)HasTitle=False'无y轴标题EndWith基本操作篇强制声明变量:OptionExplicit该语句必在任何过程之前出现在模块中。声明常数:PublicConstMyString="HELP"'默认范围是Private可在前加PublicPrivateConstMyIntAsInteger='声明PrivateInteger常数。ConstMyStr="Hello",MyDoubleAsDouble='在同一行里声明多个常数。选定有效的连续数据区:SelectionCurrentRegionSelect单元格位移:submyoffsetonerrorresumenext避免移动时产生错误主要是在四边进行不正确移动时ActiveCellOffset(,)Select'当前单元格向左移动一格ActiveCellOffset(,)Select'当前单元格向右移动一格ActiveCellOffset(,)Select'当前单元格向下移动一格ActiveCellOffset(,)Select'当前单元格向上移动一格endsub预览所有工作表DimmyAsWorksheetForEachmyInWorksheetsmyPrintPreviewNextmy得到当前日期及时间msgboxdatechr()time保护工作簿ActiveSheetProtectActiveSheetUnprotect(取消保护)打开一个应用程序AppActivate(Shell("C:WINDOWSCALCEXE"))打开一个工作薄WorkbooksOpenFileName:="C:MyDocumentsBookxls"关闭当前工作簿ActiveWindowClose合并选定单元格SelectionMerge当前单元格为百分号风格SelectionStyle="Percent"让你的机器发出响声BEEP让所有的错误不再发生OnErrorResumeNext删除一个文件kill"c:txt"定制自己的状态栏ApplicationStatusBar="现在时刻:"Time恢复自己的状态栏ApplicationStatusBar=false在运行期执行一个宏ApplicationRunmacro:="text"打开zoom显示比例对话框ApplicationDialogs(xlDialogZoom)Show打开另存对话框ApplicationGetSaveAsFilename("excel(*xls),*xls")激活字体对话框ApplicationDialogs(xlDialogActiveCellFont)Show得到一个文件名:kk=ApplicationGetOpenFilename("EXCEL(*XLS),*XLS",Title:="提示")单元格对齐:HorizontalAlignment(水平)VerticalAlignment(垂直)xlCenterAcrossSelection(跨列居中)xlLeft(左对齐)xlCenter(居中)xlRight(右对齐)xlGeneral(常规)xlTop(上)xlBottom(下)xlJustify(两端)xlDistributed(分散)xlFill(填充分两次设置)WrapText(是否缩小填充)MergeCells(是否合并单元格)字体设置:以SelectionFont开始Name字体Size字号Bold是否加粗Italic是否倾斜ColorIndex字体颜色Strikethrough删除线Underline下划线Superscript是否上标Subscript是否下标OutlineFont是否穿心字Shadow是否有阴影事件:WorkbookSheetBeforeRightClick任一单元格单击鼠标右键之后WorkbookSheetCalculate工作表内容进行重算之后WorkbookSheetChange在工作表内进行不同的操作WorkbookSheetDeactivate当前工作表被切换为非作用工作表WorkbookSheetFollowHyperlink按下Excel超链接之后WorkbookSheetPivotTableUpdate数据透视表更新之后WorkbookSheetSelectionChange工作表里选取不同单元格范围时WorkbookWindowActivate工作簿切换为作用工作簿WorkbookWindowDeactivate工作簿切换为非作用工作簿WorkbookWindowResize工作簿被打开或窗口最大化、最小化之后WorksheetSelectionChange选取不同单元格范围时附加控件进度条:microsoftpressionbarcontrol,属性:Max:设置进度条控件的最大值Min:设置进度条控件的最小值Value:设置进度条控件对象的当前值Scrolling:进度条的式样即一格一格的进度条或是没有间隔的进度条。运行时添加控件:对于TabStrip和Pages格式为:SetObject=objectAdd(Name,Caption,index)对于其它控件格式为:SetControl=objectAdd(ProgID,Name,Visible)说明:Name对象名未指定时根据使用该窗体的应用程序的规则产生一默认的名称。Caption控件标题未指定时系统自动产生index表示页或标签在Pages或Tabs集合中的位置未指定时在末尾增加ProgID标识符(必须)用于标识对象类的、没有空格的文本串。标准语法是:<Vendor><Component><Version>ProgID会被映射为类标识符(CLSID)。Visible设定对象是否可见默认为true(显示)控件的ProgID值:标签FormsLabel文本框FormsTextBox复选框FormsCheckBox组合框FormsComboBox列表框FormsListBox选项按钮FormsOptionButton框架FormsFrame多页FormsMultiPageTabStripFormsTabStrip图像FormsImage滚动条FormsScrollBar数值调节钮FormsSpinButton命令按钮FormsCommandButton切换按钮FormsToggleButton说明:、Pages和TabStrip的Add方法返回一个Page或者Tab对象集合索引从开始、Controls集合的Add方法返回一个响应指定ProgID的控件同时导致AddControl事件发生。、在运行时间添加的控件必须用惊叹号语法引用控件的属性:userform!Textboxtext、为了达到自动目的可做一示例如下m值必须在窗体初始化中过程中赋值为PrivateSubCommandButtonClick()Setcontrolsarray(m)=UserFormControlsAdd("FormsTextbox","textbox"m)Ifm>Thencontrolsarray(m)Left=controlsarray(m)Leftcontrolsarray(m)WidthEndIfcontrolsarray(m)Text="hello"mm=mEndSub菜单菜单栏名称:“File”文件“Edit”编辑“View”视图用法:Commandbars(“File”)工具栏名称:格式栏:Formatting常用栏:Standard保护栏:Protection边框栏:Borders窗体栏:Forms并排比较栏:CompareSidebySide列表栏:List绘图栏:Drawing绘图画布:DrawingCanvas图片:Picture监视窗口:WatchWindow控件箱:ControlToolbox审阅栏:Reviewing三维设置:DSettings菜单栏:WorksheetMenuBar符号栏:符号栏数据透视表:PivotTable停止录制:StopRecording阴影设置:ShadowSettings右键菜单:Commandbars("Cell")自定义菜单:类似于数据透视表的那些浮动的窗体用Commandbarsadd追加就可以了有时要加Application用宏代码添加工具栏及控件:DimctlGEButtonAsObjectThisWorkbookActivateApplicationCommandBarsAddName:="GuestTB"增加自定义工具栏:GuestTBCommandBars("GuestTB")Visible=True显示算定义工具栏SetctlGEButton=ApplicationCommandBars("GuestTB")ControlsAdd(Type:=msoControlButton,ID:=,Before:=)增加按钮Before为按钮的位置WithctlGEButtonFaceId=设置按钮的图标OnAction="ShowGuestExpenses"给按钮分配宏ShowGuestExpensesEndWith说明:、CommandBars为命令按钮集合菜单栏和工具栏均属此类型如常用栏格式栏等、CommandBarsAdd新增加一个自定义工具栏用来放自定义控件。、ApplicationCommandBars("GuestTB")ControlsAdd在新增加的工具栏中添加控件、自定义宏的ID为Type为控件按钮的类型具体如下:•msoControlButton按钮型•msoControlEdit编辑框型•msoControlDropdown下拦菜单型•msoControlGomboBox组合框型(字号)•msoControlPopup弹出式(边框)常用技巧:ApplicationCommandBars("WorksheetMenuBar")Enabled=falseApplicationCommandBars("Ply")Enabled=False'工作表标签上快捷菜单失效PrivateSubWorkbookOpen()ActiveWindowDisplayWorkbookTabs=False'隐藏工作表标签ApplicationCommandBars("Sheet")Controls()Enabled=False'格式_工作表不能重命名ApplicationCommandBarsFindControl(ID:=)Enabled=False'右键菜单不能重命名EndSub禁用固定菜单项:ApplicationCommandBars("File")Controls()Enabled=False‘位于第六行的菜单DimiAsInteger‘方法二Fori=ToApplicationCommandBars("File")ControlsCountIfApplicationCommandBars("File")Controls(i)Caption="另存为(A)"ThenApplicationCommandBars("File")Controls(i)Enabled=FalseEndIfNexti印花税菜单:需要缴纳元的印花税则需要买两张元、一张元、一张元面额的印花。宏代码如下:'印花税各面额印花张数计算程序BYRAYDENG'用途:已知印花税额,计算各面额印花张数'使用方法:做好工具条后只要选择要计算的原始数据,点击"印花税面额计算"工具条即可'(请不要选择全列,否则无效的计算太多)Substampduty()StaticflagcalAsInteger'计算标志,首次计算时清空计算结果页,否则在结果页追加计算结果StaticrowbegainAsInteger'计算结果页上可用行号,计算结果追加时从这里开始DimfilenameAsString'打开的需要计算数据的文件名Dimmoneytype()AsSingle'定义面额DimmoneyAsSingleDimbillnoAsInteger'票额张数filename=ActiveWorkbookName'记录当前打开的文件名Iffilename=VBAProjectThisWorkbookNameThen'不要在自身这个文件中操作MsgBox"请选择其它文件中的数据!",vbInformationvbOKOnlyExitSubEndIfApplicationScreenUpdating=False'将屏幕更新关闭,可加快宏的运行速度billno='计数清moneytype()='印花税面额为,以为舍入标准moneytype()=moneytype()=moneytype()=moneytype()=moneytype()=moneytype()=VBAProjectThisWorkbookSheets()Activate'打开结果页Ifflagcal=Then'如果为第一次计算,则清空结果页CellsSelectSelectionClearContentsRange("A")SelectEndIfActiveSheetCells(,)="OriginDATA"'先写上表头Fori=ToActiveSheetCells(,i)=moneytype(i)NextiWorkbooks(filename)Activate'转到要计算的原始数据数据文件rowno=ActiveWindowRangeSelectionRowsCount'所选区域有几行rowstart=ActiveWindowRangeSelectionRow'起始行colstart=ActiveWindowRangeSelectionColumn'起始列j=rowbegain'结果页中写结果的起始行Fori=Torowno'开始读原始数据origindata=Cells(irowstart,colstart)'读原始数据'广州印花税尾数处理方法:过进,不足舍去,刚好为及其倍数则不变Iforigindata*Mod<>Thenmoney=Round(origindata,)'以为界限作四舍五入Elsemoney=origindata'整数及尾数刚好为不作处理EndIfVBAProjectThisWorkbookSheets()Activate'转到结果页ActiveSheetCells(ij,)=origindata'在第一列写入原始数据Workbooks(filename)Activate''转到要计算的原始数据数据文件Fork=To'循环计算各面额所需张数Whilemoney>=moneytype(k)money=moneymoneytype(k)billno=billnoWendVBAProjectThisWorkbookSheets()ActivateActiveSheetCells(ij,k)=billno'在相应位置写入该面额张数billno='清准备计算下一面额Workbooks(filename)ActivateNextkrowbegain=rowbegain'结果页中写结果的起始行下移一行Nextiflagcal=flagcal'计算次数累加rowbegain=rowbegain'添加一空行区分不同次数的结果ApplicationScreenUpdating=True'恢复屏幕刷新VBAProjectThisWorkbookSheets()Activate'打开结果页EndSub利用VBA创建多级菜单:SubOpenMyMenu()'自定义多级选单函数OnErrorResumeNext忽略错误MenuBarsAdd("MyMenu")'自定义选单项Sheets("sheet")SelectMenuBars("MyMenu")MenusAddCaption:="金融"'增加第一个选单项"金融"'以下三句为在"金融"选单下增加"银行法、货币政策和条例"三项选单项MenuBars("MyMenu")Menus("金融")MenuItemsAddCaption:="银行法",OnAction:="银行法"MenuBars("MyMenu")Menus("金融")MenuItemsAddCaption:="货币政策",OnAction:="货币政策"MenuBars("MyMenu")Menus("金融")MenuItemsAddCaption:="条例",OnAction:="条例"'以下为创建如图所示的多级选单MenuBars("MyMenu")MenusAddCaption:="经济"'建立选单项"经济"'以下三句为在"经济"选单下增加"农业、工业和第三产业"三项选单项MenuBars("MyMenu")Menus("经济")MenuItemsAddCaption:="农业",OnAction:="农业"MenuBars("MyMenu")Menus("经济")MenuItemsAddCaption:="工业",OnAction:="工业"MenuBars("MyMenu")Menus("经济")MenuItemsAddMenuCaption:="第三产业"'以下三句为在"第三产业"选单下增加"概况、范畴"二项选单项和"饮食服务业"子选单MenuBars("MyMenu")Menus("经济")MenuItems("第三产业")MenuItemsAddCaption:="概况",OnAction:="概况"MenuBars("MyMenu")Menus("经济")MenuItems("第三产业")MenuItemsAddCaption:="范畴",OnAction:="范畴"MenuBars("MyMenu")Menus("经济")MenuItems("第三产业")MenuItemsAddMenuCaption:="饮食服务业"'以下二句为在"饮食服务业"选单下增加"酒店、酒店"二项选单项MenuBars("MyMenu")Menus("经济")MenuItems("第三产业")MenuItems("饮食服务业")MenuItemsAddCaption:="酒店",OnAction:="酒店"MenuBars("MyMenu")Menus("经济")MenuItems("第三产业")MenuItems("饮食服务业")MenuItemsAddCaption:="酒店",OnAction:="酒店"MenuBars("MyMenu")Activate'激活自定义选单EndSub语法过程调用及圆括号:、Sub过程、内置语句、以及某些方法不会返回值所以它的参数不必用圆括号封闭起来。、Function过程等不需要使用返回值时也不需要用圆括号需要使用返回值时则要用圆括号Answer=MsgBox("Areyouhappywithyoursalary",,"Question")使用返回值、使用命名参数时(:=)可以用任何的顺序来列出参数名称并且可以省略可选的参数运算符用来强制两个表达式作字符串连接。说明:如果两个表达式都是字符串则结果的数据类型是String否则结果是String变体。如果两个表达式都是则result也是。只要有一个表达式是在与其它表达式连接时都将其作为长度为零的字符串("")处理。任何Empty类型表达式也作为长度为零的字符串处理。二、程序结构:、Remcomment注释。也可以使用:'comment、If选择结构If……ThenElseIf……Then……ElseIf第一个假时判断第二个、case选择结构SelectCasetestexpressionCaseexpressionlistnstatementsnCaseElseelsestatementsEndSelect说明:可以在Case中使用多重表达式或范围如:CaseTo,To,,,Is>MaxNumber可以对字符串指定范围和多重表达式如:Case"everything","nuts"To"soup",TestItem(变量名)、Do循环Dowhile|untilLoopwhile|until说明:While和Until用来检查循环条件其中放在Do后为先执行再检查Until表示条件为假时执行循环直到条件为真时结束循环ExitDo语句退出DoLoop语句。也可以按ESC或CTRLBREAK键来终止无穷循环。、while循环Whilecondition为视为False。statementsWend、For循环Forcounter=startToendStepstep缺省步长为可为正或负statementsExitForNextcounter以指定次数循环。ForEachvarnamein集合名遍历集合……Next遍历集合中的每一个元素集合可以为任何类型的集合、End结束一个过程或块End停止执行、关闭以Open语句打开的文件并清除变量。EndFunction用于结束一个Function语句。EndIf用于结束一个If…Then…Else语句块。EndProperty用于结束一个PropertyLet、PropertyGet、或PropertySet过程。EndSelect用于结束一个SelectCase语句。EndSub用于结束一个Sub语句。EndType用于结束一个用户定义类型的定义(Type语句)。EndWith用于结束一个With语句。说明:End重置所有变量和静态局部变量。若要保留用Stop可以在保留这些变量值的基础上恢复执行。End直接中止程序不调用Unload、QueryUnload、或Terminate事件或任何其它VisualBasic代码类模块创建的对象被破坏由Open语句打开的文件被关闭并且释放程序所占用的内存。其它程序的对象引用无效。、Exit退出DoLoop、ForNext、Function、Sub或Property代码块。ExitDo退出DoLoop循环,如果为嵌套情况只退出本层循环ExitFor退出For循环如果为嵌套情况只退出本层循环ExitFunction退出函数。从调用Function的语句之后继续执行。ExitProperty退出Property过程。从调用Property过程的语句之后继续执行。ExitSub退出Sub过程。从调用Sub过程的语句之后继续执行。、Stop暂停执行相当于设置断点、FunctionCelsius(ByValByReffDegreesas…)as…自定义函数……Celsius=……返回函数结果EndFunction、Subname(arglist)声明子过程statementsExitSubEndSub参数语法:OptionalByVal|ByRefParamArrayvarname()Astype=defaultvalueOptional可选参数其后续参数都必须是可选且必须都用此声明。不能和ParamArray一起用ByVal值传递ByRef地址传递缺省选项。不能和ParamArray一起用ParamArray表示最后一个参数是Variant元素的Optional数组。使用此可以提供任意数目的参数。defaultvalue默认值、Callnameargumentlist调用过程、函数或动态链接库说明:Call可选。使用call时后面参数必须加上括号而且其返回值将被丢弃若要将整个数组传给一个过程使用数组名然后在数组名后加上空括号。PrivateDeclareSubMessageBeepLib"User"(ByValNAsInteger)SubCallMyDll()'调用DLL。该声明语句必需是类模块中的私有的而不是标准模块中的。CallMessageBeep()'调用WindowsDLL过程。MessageBeep'再次调用但不用“调用”这个关键字。EndSub三、其它语句DimWithEventsvarname(subscripts)AsNewtype声明变量并分配存储空间。参数:WithEvents可选响应事件的对象变量。用在类中。不能使用其创建数组。不能和New一起使用subscripts数组维数最多语法:lowerToupper,lowerToupper未指定lower时下标由OptionBase语句控制。如果没有使用OptionBase语句则下界为。New隐式地创建对象在第一次引用该变量时新建该对象的实例因此不必用Set给其赋值。不能声明任何内部数据类型的变量以及从属对象的实例。type变量的数据类型。所声明的每个变量都要一个单独的Astype子句。说明:可以声明变量为对象类型。例为工作表的新建实例声明了一个变量。DimXAsNewWorksheet若定义时未用New则使用前必须用Set赋值。在赋值之前有一个特定值Nothing可以用Dimname()定义动态数组。以后用ReDim语句来定义维数和元素。数值变量被初始化为变长字符串为("")定长字符串用填充。Variant变量为Empty。自定义类型的变量的每个元素作为各自独立的变量进行初始化。ReDimPreservevarname(subscripts)Astype,varname(subscripts)Astype定义或重定义原来已经用带空圆括号(没有维数下标)的动态数组的大小。但不能改变其数据类型。参数:Preserve可选当改变原有数组最末维的大小时使用此关键字可以保持数组中原来的数据。subscripts数组维数(最多维)使用下面的语法:lowerToupper,lowerToupper未指定lower则数组的下界由OptionBase语句控制。无OptionBase时为。type可选。数据类型可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(变长字符串)、String*length(定长字符串)、Object、Variant、用户定义类型或对象类型。说明:每个变量都要有一个单独的Astype子句如果使用了Preserve关键字就只能重定义数组最末维的大小且不能改变维数的数目。在使用Preserve时只能通过改变上界来改变数组的大小改变下界则会导致错误。如果将数组改小则被删除的元素中的数据就会丢失。要改变Variant所包含的数组的大小必须在试图改变其数组大小之前显式声明该Variant变量。初始化时数值变量被初始化为变长的

VIP免券下载文档

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/39

VBA

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利