>

VBA续嘘嘘——宏技术集绵

- 编辑:乐百家599手机首页 -

VBA续嘘嘘——宏技术集绵

第一步,请点击标题《Excel设置启用宏方法(宏品级设置)!》查看设置,这里不再重复;

        Workbooks(2).Sheets(2).Range("a1") = 200

  A.专门的职业簿对象

61、Excel 最根本的运用正是选用公式实行总计。无论输入是彻彻底底的数字运算,照旧引用其余单元格总结,只要在二个单元格中输入公式,就会得到结果。这几个平昔彰显结果的 设计对于大诸多场子来讲都以适用的,但有个别景况下就不那么令人满足了。举例说在做工程施工的预结账编写,使用Excel,既要写出工程量的总括式,也要 看到它的结果,于是那样同样的公式在Excel里面要填四回,叁遍在文本格式的单元格中输入公式,二遍是在数据格式的单元格中输入公式让Excel总括结 果。怎么着不仅可以看到公式又能观察结果吗?这些主题材料笔者以为可以从三个地点想念:一种格局是所谓“已知结果,展现公式”,先在数据格式单元格中输入公式让 Excel总括结果,然后在附近的单元格中看到公式;另一种格局所谓“已知公式,展现结果”,正是先在一个文本格式的单元格中输入公式,在相邻的单元格中 看到结果。★已知结果,展现公式
假使C列为通过公式总结获得的结果(假诺C1为“=A1 B1”,也许直接是数字运算“=2 3”),而隔壁的D列是你供给出示公式的地点(即D1应有展现为“=A1 B1”或然“=2 3”)。

感谢“静水深流57560”约请回答!

               wb.SaveAs ThisWorkbook.Path & "/1日.xls"

         End Select

  1. 展开“工具”菜单选取“选项”命令,出现“选项”对话框。
  2. 在“常规”选项卡中,选中“中华V1C1引用形式”选项。
    3. 概念名称,将“引用地方”由“=GET.CELL(6,Sheet1!RC[-1])”即可。这里的RC[-1]意思是只要在脚下单元格的同行前一列单元 格中有公式结果,则在时下单元格中获得公式内容,即在含公式结果单元格的同行后一列单元格展现公式内容;假若将CRUISERC[-1]改为RC[1],则在公式结果 的同行前一列单元格显示公式内容。
    4. 万一“引用地方”中富含“索罗德C[-1]”,则在含公式结果单元格的同行后一列单元格中输入“=FormulaofResult”就可以获得公式;要是“引用 地点”中蕴藏“路虎极光C[1]”,则在含公式结果单元格的同行前一列单元格中输入“=FormulaofResult”就能够获取公式。
    提醒:假设想要在含公式结果单元格的同行后数第2列中呈现公式内容,则需求把“引用地点”中的“大切诺基C-1”改为“卡宴C-2”。
    ★已知公式,显示结果
    假诺C列为输入的未有等号公式(要是C1为“A1 B1”),而周边的D列是你供给寄放公式计算结果的地方(即D1显示A1和B1单元格相加的结果)。
    1. 选中D1,然后展开“插入”菜单选择“名称”命令中的“定义”子命令,出现“定义名称”对话框。
    2. 在“在当前专门的工作表中的称号”输入栏中输入定义的称呼“ResultofFomula”,在红尘的“引用地方”编辑栏中输入“=EVALUATE(Sheet1!C1)”,单击[确认]开关退出。
  3. 在 D第11中学输入“=ResultofFomula”,然后选中按住右下角的填充柄向下拉动填充就能够。
    唤醒:EVALUATE是Eexcel 4.0版的宏表函数,Excel 三千和Excel 2001中还援助,但只可用来名称定义中。
    4. 填充后要按[F9]举办重算,假使C列的公式有变动,也要求立刻按[F9]展开重算。
    巧施妙招,就会让公式和结果在Excel中和平共处了,你也试试啊。
    62、  Microsoft Excel是一款效果拾分庞大的手表格软件。它能够轻易地完毕多少的每一项数学生运动算,并用各个二维或三维图形形象地球表面示出来,从而大大简化了数额的管理工作。但若仅使用Excel的常用成效来拍卖较复杂的数码,恐怕仍需进行大气的人造操作。但Excel的强硬远远超过大家的设想--宏的引进使其独具了极端 的增加性,因此能够很好地化解复杂数据的拍卖难点。
     随着支持Windows的应用程序的随地加多和成效的不断进步,越来越多的顺序扩充了宏管理来方便用户的轻松扩张。但开始的一段时代各应用程序所采纳的宏语言并不联合,那样用户每使用一种应用程序时都得重新学习一种宏语言。为了统一各个应用程序下的宏,Microsoft推出了VBA(Visual Basic for Applications)语言。
       VBA是从流行的Visual Basic编制程序语言中派生出来的一种面向应用程序的语言,它适用于种种Windows应用程序,能够化解各应用程序的宏语言不统一的标题。除外,使用 VBA语言还会有如下优点:1、VBA是一种通用程序语言,通过它不唯有可以共享Microsoft相关的各样软件(如Excel、Word、 Access)……,而且趁机别的的一部分软件(如著名的AutoCAD三千)等对VBA的支持,那么些软件也已进入到了VBA的调节范围;2、能够将用VBA编写的程序复制到Visual Basic中调养并运维,从而达成用Visual Basic来支配有关的应用程序;3、VBA提供的大方内部函数大大简化了用户的操作。
      对于当今的宏,不仅仅语言统一规范,而且其职能也已丰富庞大。但在许多介绍Excel的"傻瓜书"、"指南"、"入门与抓好"等参考书中屡屡略过不提,或浅浅带过,读者从中获得的有关文化往往不足以应付管理复杂数据的须求。为了达成专门的工作,就让大家一起来读书"宏"的妙用吧。
      一)、宏的进修
      首先必要明显的是,本文非常小概教会您关于宏的 全部内容。您要求学会使用"录像宏"的点子来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录像新宏",此后可象平常同样进行有关操作, 待达成后停下录像。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项就能够展开刚才所录像的宏的Visual Basic源程序,并且能够在那时的"扶助"下拉菜单中获取有关的编制程序扶助。对摄像宏进行改造不只可以够学习宏的行使,仍是能够大大简化宏的编写制定。
      二)、基本概念
      为了学习Excel中的宏,大家需求先通晓以下部分基本概念。
      1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook
       Workbooks集结包蕴Excel中享有当前展开的Excel专门的职业簿,亦即怀有张开的Excel文件;Workbook对应Workbooks中的 成员,即内部的Excel文件;ActiveWorkbook代表当前处在活动状态的职业簿,即当前突显的Excel文件;ThisWorkbook代表 个中有Visual Basic代码正在周转的工作簿。
      在切进行使中可用Workbooks(index)来引用Workbook对象,当中index为职业簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号依据创造或张开专门的学问簿的依次来规定,第 一个开垦的工作簿编号为1,第叁个展开的专门的职业簿为2……。
      2、工作表:Worksheets、Worksheet、ActiveSheet
      Worksheets集结包蕴职业簿中装有的工作表,即三个Excel文件中的全部数据表页;而Worksheet则意味中间的三个专业表;ActiveSheet代表当前居于的活动状态职业表,即当前显示的五个专门的职业表。
       可用Worksheets(index)来引用Worksheet对象,个中index为职业表名称或索引号;如Worksheets(1)、 Worksheets("第一季度数据")。工作表索引号申明该职业表在劳作表标签中的地方:第二个(最左边的)工作表的索引号为1,最终贰个(最右边的)为Worksheets.Count。供给专注的是:在选取进程中Excel会自动重排专门的学问表索引号,保持遵照其在劳作表标签中的从左至右排列,职业表的索引号递增。因而,由于恐怕张开的行事表加多或删除,职业表索引号不必然一向维持不改变。  3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart
      Chart代表专门的学问簿中的图表。该图形既可为嵌入式图表(包蕴在ChartObject中),也可为二个别离的(单独的)图表专门的职业表。
       Charts代表钦赐职业簿或运动职业簿中负有图表工作表的集聚,但不包蕴嵌入式在专门的学问表或对话框编辑表中的图样。使用Charts(index) 可援引单个Chart图表,其中index是该图形工作表的索引号或名称;如Charts(1)、Charts("出卖图表")。图表事业表的索引号表示 图表工作表在专门的职业簿的专门的学问表标签栏上的地点。Charts(1)是工作簿中率先个(最左侧的)图表工作表;Charts(Charts.Count)为最后四个(最左边的)图表职业表。
      ChartObject代表职业表中的嵌入式图表,其功能是当做Chart对象的器皿。利用ChartObject能够调控职业表上嵌入式图表的外观和尺寸。
       ChartObjects代表内定的图样职业表、对话框编辑表或办事表上全数嵌入式图表的汇集。可由ChartObjects(index)引用单个 ChartObject,当中index为嵌入式图表的编号或名称。如Worksheets("Sheet1").ChartObjects(1)、 Worksheets("sheet1").ChartObjects("chart1")分别对应"Sheet1"职业表中的率先个嵌入式图表、以及名称为"Chart1"的嵌入式图表。
      ActiveChart能够引用活动状态下的图形,不论该图形是图片工作表,或嵌入式图表。而对此图片职业表为活动职业表时,仍是能够透过ActiveSheet属性引用之。
      4、单元格:Cells、ActiveCell、Range、Areas
      Cells(row,column)代表单个单元格,当中row为行号,column为列号。如能够用Cells(1,1)、Cells(10,4)来引用"A1"、"D10" 单元格。ActiveCell代表活动工作表的移位单元格,或钦定专门的学业表的移动单元格。
      Range代表专门的学业表中的某一单元格、某一行、某一列、某一选定区域(该选定区域可含蓄三个或若干一而再单元格区域)恐怕某一三维区域。
       可用Range(arg)来引用单元格或单元格区域,当中arg可为单元格号、单元格号范围、单元格区域名称。如Range("A5")、 Range("A1:H8")、Range("Criteria")。就算可用Range("A1")再次回到单元格A1,但用Cells更有益,因为这时可 用变量钦赐行和列。
     可将Range与Cells结合起来使用,如Range(Cells(1,1),Cells(10,10))代表单元格区 域"A1:J10";而expression.Cells(row,column)再次来到单元格区域中的一局地,个中expression是回到Range 的表明式,row和column为相对于该区域的左上角偏移量。如由Range("C5:C10").Cells(1,1)引用单元格C5。
       Areas为选定区域内的连天单元格块的成团,其成员是Range对象。而其中的各种Range对象表示选定区域内与别的一些相分离的贰个老是单元格块。 有个别操作不能够在选定区域内的多少个单元格块上同一时候进行;必须在选定区域内的单元格块数Areas.Count上循环,对每种独立的单元格块分别实施该操作。 此时,可用Areas(index)从会集中回到单个Range对象,个中index为单元格块编号;如Areas(1)。
      5、 行与列:Rows、Columns、Row、Column
       Rows、Columns分别代表活动工作表、单元格区域范围Range、内定职业表中的装有行数、列数。对于二个多选单元格区域范围Range的 Rows、Columns,只回去该限制中首先个区域的行数、列数。比如,倘使Range对象有五个区域(areas)A1:B2和 C3:D4,Rows.Count再次回到2而不是4。
      可因此Rows(行号)、Columns(列号)来引用相应的行与列;如Rows(3)、Columns(4)分别对应第三行、D列。
    运用Rows、Column能够赢得区域中率先块的率先行行号、第一列列号,所得值均以十进制数表示。
      三)、处理单元格
      1、直接赋值与引用
      将变量、常量值直接赋给单元格、或将单元格的值直接赋给变量、常量,那是在Excel中最简易的单元格赋值及引用方法。如下例将工作表"Sheet1"A1单元格的值赋给Integer变量I,并将I 1的值赋给当前专门的学问表中的B1单元格:
      Dim I As Integer
      I=Worksheets("Sheet1").Cells(1,1)
      Cells(1,2).Select '选定B1单元格,使其变为最近单元格
      ActiveCell=I 1 '以I 1为眼下单元格赋值
      2、用公式赋值
      在宏的使用中,可能会越来越多地用公式来给单元格赋值。如下例将相对于运动单元格左边第4列、向上第6行至向上第2行的单元格数值之和赋给活动单元格(以行当、本列为第0行、0列):
      ActiveCell.Formula="=AVERAGE(R[-6]C[-4]:R[-2]C[-4])"
      3、引用其它职业表中的单元格
      当赋值公式中供给引用其它专门的学问表中的单元格时,在被引用的单元格前拉长"专门的学业表名!"就能够。如以下即在赋值中援引了"Sheet1"专门的学业表中的A1至MAEnclaveCH单元格:
      Range("E10").Formula="=SUM(Sheet1!R1C1:R4C1)"
      但需注意的是:当被引用的行事表名中带有有个别恐怕滋生公式歧义的字符时,须要用单引号'将专门的学业表名括起来。如:
      Worksheets("Sheet1").ActiveCell.Formula="=Max('1-1剖面'!D3:D5)"
      4、引用别的专门的职业簿中的单元格
      在被引述单元格所在职业表名前拉长"[行事簿名]",就能够引用别的职业簿中的单元格。如:
    ActiveCell.Formula="=MAX([Book1.xls]Sheet3!R1C:RC[4])"
    一模二样需注意的是:当被引述的干活簿名中涵盖某个恐怕滋生公式歧义的字符时,必要用中括号"["、"]"及单引号'将职业簿名括起来。如:
      Cells(1,2).Formula="=MIN('[1995-2000总结.xls]1995-1996年'! $A$1:$A$6)"
      5、防止循环引用
      在上述公式赋值进度中,应制止在公式中引用被赋值的单元格,幸免循环引用错误。
      6、增多申明
      可按如下方法格给单元格增添批注:
      Dim 解说文本 As String
      阐明文本="批注示例" '希图注解文本
      ActiveCell.AddComment '加多注解
      ActiveCell.Comment.Text Text:=有的时候 '写入解说文本
      ActiveCell.Comment.Visible=False '隐藏讲明
    7、增加、删除、复制、剪切、粘贴单元格
      Range("D10").Insert Shift:=xlToRight '在D10单元格处加多一新单元格,原D10格右移
      Range("C2").Insert Shift:=xlDown '在C2单元格处增加一新单元格,原C2格下移
      Rows(2).EntireRow.Insert '在第2行前加多一空白行,原第2行下移
      Columns(3).EntireColumn.Insert '在C列前增多一空白列,原C列右移
      Columns("A:D").Delete Shift:=xlToLeft '删除A列至D列,其入手列左移
      Rows("3:5").Delete Shift:=xlUp '删除第3行至第5行,其下方行上移
      Range("B2").EntireRow.Delete '删除第2行
      Range("C4").EntireColumn.Delete '删除C列
      Range("B10:C13").Copy '复制B10至C13单元格区域
      Cells(1,2).Cut '剪切B1单元格
      Range("D10").Select
      ActiveSheet.Paste '自D10单元格起粘贴剪贴板中的内容
      四)、图表
      1、专门的职业表图表
      以下为一加多专门的工作表图表的实例。
      Charts.Add after:=Worksheets("Sheet1") '在"Sheet1"职业表之后增加新图片专业表
      ActiveChart.ChartType=xlXYScatterSmooth '图表类型为XY平滑线散点图
      ActiveChart.SetSourceData Source:=Sheets("结点坐标").Range("A1:B69"), PlotBy:= _
      xlColumns '图表数据出自"结点坐标"专门的学业表的A1至B69单元格,且按列绘图。
      ActiveChart.Location Where:=xlLocationAsNewSheet
      With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "节点坐标" '图表标题"节点坐标"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x" 'x轴标题"x"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y" 'y轴标题"y"
      End With
      With ActiveChart.Axes(xlCategory)
        .HasMajorGridlines = True '展现x轴主网格线,暗中认可意况下为展现
        .HasMinorGridlines = True '展现x轴次网格线,暗许情形下为不展现
      End With
      With ActiveChart.Axes(xlValue)
        .HasMajorGridlines = True '标出x轴主网格值,默许境况下为标记
        .HasMinorGridlines = False '撤消x轴次网格值标明,暗许处境下为不注解
      End With
      ActiveChart.Legend.Position = xlRight '图例突显在图纸右边
      2、嵌入式图表
      嵌入式图表仅在累加措施及引用格式上与做事表图表有所分裂,而对图片的设置基本类似。详见下例。
      Set嵌入表=ActiveSheet.ChartObjects.Add(0,0,200,300) '在当下职业表(0,0)坐标处增多宽200,高300的嵌入式图表
      嵌入表.Chart.ChartType = xlColumnClustered '图表类型为簇状柱形图
      嵌入表.Chart.SetSourceData Source:=Sheets(1).Range("A2:B2"), PlotBy:=xlRows '设置图表数据出自
      With 嵌入表.Chart
        .HasTitle = False '无图表标题
        .Axes(xlCategory, xlPrimary).HasTitle = False '无x轴标题
        .Axes(xlValue, xlPrimary).HasTitle = False '无y轴标题
      End With
      五)、工作表
      1、添加
      Sheets.Add before:=Sheets(1) '在第1做事表前增多新职业表
      Sheets.Add after:=Sheets(Sheets.Count) '在终极专门的学问表后增添新职业表
      2、移动
      ActiveSheet.Move before:=Sheets(2) '将近来专业表移动至第2工作表从前
      3、命名
      ActiveSheet.Name="职业表名" '将当前专门的职业表命名叫"职业表名"
      4、删除
      能够用来下语句删除当前职业表。
      ActiveSheet.Delete
      但在剔除前Excel会自动掸出提醒框,需在用户确认后方可实行删除。为幸免这一苦恼,能够先用以下语句关闭Excel的警戒提示。
      Application.DisplayAlerts = False
      在剔除完毕后,再重复打开Excel的警戒提醒
      Application.DisplayAlerts = True
      六)、工作簿
      Excel的宏对专门的工作簿的操作首要为保留。
      Dim 存盘文件名 As String
      ActiveWorkbook.Save '保存当前工作簿
      存盘文件名="职业表名"
      ActiveWorkbook.SaveAs Filename:= 存盘文件名 '当前职业簿另存为"工作表名.xls"
      在另存时,若钦命的存盘文件名不包涵路线,则保留在该职业簿的展开目录下。而若此存盘文件已存在,也可用关闭Excel警告提醒的措施防止其活动掸出提醒框。
    63、用VBA的多少个误区
    1、想通过Excel vba来编制程序发财,不管怎么说,近年来这种或者非常小。
    2、摄像宏后的代码不举办简化,这种意况初学者常犯;大概不屑于用摄像宏,这种相反。
    3、喜欢用.select、.copy、.active等,要是或不是无奈,依旧不要用这个事物好。
    4、 恶感用公式、函数,什么都爱不忍释用程序;活用公式函数是大家学EXCEL中要害的显要,学会嵌套着用,繁多作业都得以化解。比如表1的A1单元格假设要等 于表2的A列中的有些单元格,很四人都以用程序来一贯赋值,数量少那也得以,但一旦数额大多以来,为什么不试用一下offset呢?偏移都针对同多少个单元 格,就当是二个变量,改一下以此单元格的值,表1用offset的单元格的值就全数改了。
    5、设计输入数据的分界面竟然用用户窗口 文本框之类的事物,天,笔者怎么要用EXCEL,原因之一不正是图个有利啊?!直接在工作表中操作就是输入数据最佳的诀要,要是部分效果你不想给外人用,顶多你屏蔽掉吧。
    6、关闭程序的时候很欣赏退出整个EXCEL,那样自己以为更象贰个完好无缺的程序。其实完全有必不可缺思索别的用户是或不是也在用EXCEL,所以,必须做好一下判别,不要布鼓雷门全体退出去,还支援把各种专门的学问簿都保留一下。
    7、不希罕用with,总是workbook("").worksheet("").range("").***一行行排得挺整齐的,还说都用复制,其实也不费事。
    8、总想把VBA EXCEL做得象三个主次一样,其实,就因为它不单独,所以才更为为大家爱护,不是吧?
    64、用过VB的人都应有清楚怎么样表明变量,在VBA中宣称变量和VB中是全然同样的!
    使用Dim语句
    Dim a as integer           '申明A为整形变量
    Dim a                          '申明A为变体变量
    Dim a as string             '注解A为字符串变量
    Dim a,b,c as currency        '注脚A,b,c为货币变量
    阐明变量能够是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不援救)、 Date、String(只限变长字符串)、String * length(定长字符串)、Object、Variant、用户定义类型或对象类型。
    强制证明变量
    Option Explicit
    注脚:该语句必在其余进度从前出现在模块中。
    扬言常数,用来代替文字值。
    Const
    ' 常数的暗许状态是 Private。
    Const My = 456
    ' 声明 Public 常数。
    Public Const MyString = "HELP"
    ' 声明 Private Integer 常数。
    Private Const MyInt As Integer = 5
    ' 在同一行里声称七个常数。
    Const MyStr = "Hello", MyDouble As Double = 3.4567
        在EXCEL97中,有多个不行好的功效,他正是把鼠标放置在二个卓有成效数据单元格中,执行该段代码,你就足以将连在一齐的一片数量总体中选。只要将该段代码加入到你的模块中。
    Sub My_Select
    Selection.CurrentRegion.Select
    End sub
    删去当前单元格中数据的内外层空间格。
    sub my_trim
    Trim(ActiveCell.Value)
    end sub
    使单元格位移
    sub my_offset
    ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格
    ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格
    ActiveCell.Offset(1 ,   0).Select'当前单元格向下移动一格
    ActiveCell.Offset(-1  , 0).Select'当前单元格向上移动一格
    end sub
    要是上述顺序发生错误那是因为单元格不可能活动,为了清除上述荒唐,大家可以后
    sub my_offset 之下加一段代码 on error resume next
    留意以下代码都不再增加 sub “代码名称” 和end sub请自身丰硕!
    给当下单元格赋值:
    ActiveCell.Value = "你好!!!"
    给一定单元格插足一段代码:
    举例:在A1单元格中插入"HELLO"
    Range("a1").value="hello"
    又如:你未来的专业簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"
    1.sheets("sheet2").select
    range("a1").value="hello"
    或2.Sheets("sheet1").Range("a1").Value = "hello"
    说明:
    1.sheet2被打开,然后在将“HELLO"放入到A1单元格中。
    2.sheet2不被张开,将“HELLO"放入到A1单元格中。
    隐身职业表
    '隐藏SHEET1那张专门的工作表
      sheets("sheet1").Visible=False
    '呈现SHEET1那张职业表
      sheets("sheet1").Visible=True
    突发性大家想把持有的EXCEL中的SHEET都打字与印刷预览,请使用该段代码,它将在你现存的工作簿中循环,直到最终贰个工作簿甘休循环预览。
    Dim my As Worksheet
    For Each my In Worksheets
    my.PrintPreview
    Next my
    获取当前单元格的地址
    msgbox ActiveCell.Address
    取妥当前天期及时间
    msgbox date & chr(13) & time
    敬服工作簿
    ActiveSheet.Protect
    撤废拥戴职业簿
    ActiveSheet.Unprotect
    给当下工作簿改名称叫 "liu"
    ActiveSheet.Name = "liu"
    开采多个应用程序
    AppActivate (Shell("C:WINDOWSCALC.EXE"))
    充实三个专门的学问簿
    Worksheets.Add
    除去当前工作簿
    activesheet.delete
    开采贰个文件
    Workbooks.Open FileName:="C:My DocumentsBook2.xls"
    关门当前职业簿
    ActiveWindow.Close
    时下单元格定为:左对齐
    Selection.HorizontalAlignment = xlLeft
    现阶段单元格定为:中心对齐
    Selection.HorizontalAlignment = xlCenter
    当前单元格定为:右对齐
    Selection.HorizontalAlignment = xlRight
    当下单元格为百分号风格
    Selection.Style = "Percent"
    脚下单元格字体为粗体
    Selection.Font.Bold = True
    此时此刻单元格字体为斜体
    Selection.Font.Italic = True
    近些日子单元格字体为黑体20号字
    With Selection.Font
    .Name = "宋体"
    .Size = 20
    End With
    With 语句
    With 对象
        .描述
    End With
    让您的机器发出响动
    BEEP
    消除单元格中全体文字、阐述、格式、全数的东西!
    ActiveCell.Clear
    测试选择情形的单元格的行数
    MsgBox Selection.Rows.Count
    测试选用意况的单元格的列数
    MsgBox Selection.Columns.Count
    测试选用情形的单元格的地址
    Selection.Address
    让抱有的荒谬不再爆发
    ON ERROR RESUME NEXT
    发出错误时让错误转到另二个地方
    on error goto l
    'code
    l:
    'code
    删去贰个文书
    kill "c:1.txt"
    定制自个儿的状态栏
    Application.StatusBar = "以往每一天: " & Time
    苏醒和煦的状态栏
    Application.StatusBar = false
    在运转期实施三个宏
    Application.Run macro:="text"
    滚动窗口到a1的职位
    ActiveWindow.ScrollRow = 1
    ActiveWindow.ScrollColumn = 1
    定制系统日期
    Dim MyDate, MyDay
    MyDate = #12/12/69#
    MyDay = Day(MyDate)
    今天的为期
    Dim MyDate, MyYear
    MyDate = Date
    MyYear = Year(MyDate)
    MsgBox MyYear
    产生三个inputbox<输入框>
    InputBox ("Enter number of months to add")
    赢得二个文件名:
    Dim kk As String
    kk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS", Title:="提醒:请展开一个EXCEL文件:")
    msgbox kk
    展开zoom呈现比例对话框
    Application.Dialogs(xlDialogZoom).Show
    激活字体对话框
    Application.Dialogs(xlDialogActiveCellFont).Show
    开发另存对话框
    Dim kk As String
    kk = Application.GetSaveAsFilename("excel (*.xls), *.xls")
    Workbooks.Open kk
    此段代码寻觅字符串中一定字符的职务,要求建设构造三个窗体,并在窗体中,放入TEXTBOX1,TEXTBOX2和TEXTBOX3(3个文本框)及COMMANDBUTTON1(按键)
    Private Sub CommandButton1_Click()
    a = TextBox1.Text
    b = TextBox2.Text
    aa = Len(a)
    i = 1
    Dim YY As String
    If b = "" Then Exit Sub
    Do
    If InStr(i, a, b, vbTextCompare) = 0 Then Exit Do
    kk = InStr(i, a, b, vbTextCompare)
    YY = YY & CStr(kk) & "/"
    i = kk 1
    Loop While aa >= i
    TextBox3.Text = YY
    End Sub
    ActiveX控件在Excel97中的运用
        Excel97在工作表或图表上可使用ActiveX控件,依据本人利用的体味,在做事上拍卖控件时,必须小心和了然如下事项:                     (一)用Excel5.0/95职业簿文件格式保存Excel97职业簿时,将采用ActiveX控件新闻。当用户通过双击鼠标来编排内嵌在别的应用程 序文书档案中的Excel97专业簿时,该工作簿上的控件将不会健康工作。如若用户是透过用右键单击职业簿,然后选中急速菜单上的“张开”命令来编排工作簿的 话,工作簿上的控件就能够符合规律工作了。
        (二)当ActiveX控件处于激活状态时,将禁止使用有些MicrosoftExcelVisualBasic方法和属性。比如,当某一控件激活时,就不能够动用Sort方法,故下述按键单击事件处理进程中的代码将退步(因为用户单击按键后,该按键就高居激活状态)。
        PrivateSubCommandButton1Click
        Range(″a1:a10″)SortKey1:=Range(″a1″)
        EndSub
        化解办法是由此选激活工作表上任何成分的章程来绕过这种主题素材。比方,可用下列代码对单元格区域排序:   
        PrivateSubCommandButton1Click
        Range(″a1″)Activate
        Range(″a1:a10″)SortKey1:=Range(″a1″)
        CommandButton1Activate
        End Sub
       (三)在MicrosoftExcel中,用OLEObjects集结中的OLEObject对象表示ActiveX控件。假如要用编制程序的办法向工作表增加ActiveX控件,可用OLEObjects群集的Add方法。譬喻向第一张专业表加多命令开关。
        Worksheets(1)OLEObjectsAdd″FormsCommandButton1″,_
        Left:=10,Top:=10,Height:=20,Width:=100
        因为ActiveX控件也可用OLEObjects集合中的OLEObject对象表示,所以也可用该集结中的对象来安装控件的品质。比方要设置控件“CommandBotton1”的“右边地方”属性。
        Worksheets(1)OLEObjects(″CommandButton1″)Left=10
        这几个不属于OLEObject对象属性的控件属性,可通过由Object属性再次回到的其实控件对象来设置。举例要设置控件“CommandButton1”的标题。
        Worksheets(1)OLEObjects(″CommandButton1″)
        ObjectCaption=″runme″
        因为兼具的OLE对象也是Shapes会集的成员,所以也可用该集合设置若干控件的特性。比如要对齐第一张专业表上全数控件的右边框。
        ForEachsInWorksheets(1)Shapes
        IfsType=msoOLEControlObjectThensLeft=10
        Next
        请留意,当在控件所在专门的学问表的类模块之外使用控件的名号时,必须用工作表的名号限定该控件的称号。在工作表上ActiveX控件的事件管理进程中,Me关键字所针对的是专门的学问表,而非控件
    65、在Excel中接纳VBA创建多级选单
    Excel 是大家常用的表格处理软件之一,对于当先54%人来讲只是利用它进行打字与印刷表格,未有在意别的作用,其实选用Excel内嵌的 VBA 语言完全能够长足支付出团结公司的施用系统来,而且动用种类分界面与任何职业编程语言相当一般。上边小编不难通过几个实例证实怎么着利用VBA创设多级选单。
    先是,大家对Excel中四个关键的放权函数auto_open() 和 auto_close()作一简练表明。
    auto_open() :在开拓职业簿时系统将机关实施该函数,由此大家得以在该函数中调用自身应用程序的选单函数以及别的需求开端化设置的函数及宏语句;
    auto_close():在关门工作簿时系统将自行施行该函数。所以大家必要在该函数中放置删除用户自定义选单语句,不然唯有退出Excel技能复苏EXCEL的系统选单。
    在偏下语句中,大家定义了选单设置函数 OpenMyMenu(),用于安装多级选单,别的有关评释见程序内注释,详细代码如下:
    Sub OpenMyMenu() ′自定义多级选单函数
    On Error Resume Next ′忽略错误
    MenuBars("MyMenu").Delete ′删除自定义选单
    MenuBars.Add ("MyMenu") ′自定义选单项
    Sheets("sheet1").Select
    MenuBars("MyMenu").Menus.Add Caption:="金融"
    ′扩展第叁个选单项“金融”
    ′以下三句为在“金融”选单下增添“银行法、货币政策和规章”三项选单项
    MenuBars("MyMenu").Menus("金融").MenuItems.Add Caption:="银行法", OnAction:="银行法"
    MenuBars("MyMenu").Menus("金融").MenuItems.Add Caption:="货币政策", OnAction:="货币政策"
    MenuBars("MyMenu").Menus("金融").MenuItems.Add Caption:="条例", OnAction:="条例"
    ′以下为创设如图所示的俯拾便是选单
    MenuBars("MyMenu").Menus.Add Caption:="经济" '建设构造选单项“经济”
    ′以下三句为在“经济”选单下扩展“农业、工业和第第三行当业”三项选单项
    MenuBars("MyMenu").Menus("经济").MenuItems.Add Caption:="农业", OnAction:="农业"
    MenuBars("MyMenu").Menus("经济").MenuItems.Add Caption:="工业", OnAction:="工业"
    MenuBars("MyMenu").Menus("经济").MenuItems.AddMenu Caption:="第第三行当业"
    ′以下三句为在“第第三行当业”选单下扩充“概略、范畴”二项选单项和“饮服业”子选单
    MenuBars("MyMenu").Menus("经济").MenuItems("第三行业").MenuItems.Add Caption:="概略", OnAction:="轮廓"
    MenuBars("MyMenu").Menus("经济").MenuItems("第第三行业业").MenuItems.Add Caption:="范畴", OnAction:="范畴"
    MenuBars("MyMenu").Menus("经济").MenuItems("第第三行业业").MenuItems.AddMenu Caption:="饮服业"
    ′以下二句为在“饮服业”选单下扩充“酒店1、饭馆2”二项选单项
    MenuBars("MyMenu").Menus("经济").MenuItems("第第三行当业").MenuItems("饮食服务业").MenuItems.Add Caption:="酒馆1", OnAction:="旅社1"
    MenuBars("MyMenu").Menus("经济").MenuItems("第三行业").MenuItems("饮服业").MenuItems.Add Caption:="饭馆2", OnAction:="饭店2"
    MenuBars("MyMenu").Activate ′激活自定义选单
    End Sub
    Sub auto_open() ′系统自动展开运营宏
    OpenMyMenu ′调用用户选单函数
    End Sub
    Sub auto_close() ′系统自动关闭运转宏
    On Error Resume Next ′忽略错误
    MenuBars("MyMenu").Delete ′删除自定义选单
    End Sub
    读者能够在投机的专门的学业簿选单“工具”中的“宏”下,创设以上八个函数并将上述函数语句拷贝到当中就能够运维。
    66、.用VBA(编程)保护Excel文档
       VBA(Visual Basic for Application)是Excel应用程序中效果十一分有力的编制程序语言,为了规范不一样的用户对Excel应用程序的造访技术,须求对Excel文书档案及有 关的数额实行实用的保险, 这里依照本身及同行们的体会,从以下三个方面介绍用VBA编制程序法完成对Excel文书档案的体贴。
    对职业簿的保安
    1.行使VBA中Workbook对象的SaveAs方法实现对工作簿的掩护, 上边就对SaveAs有 关的参量作一介绍:
    Filename:该字符串表示要保存的文件名。 可含蓄完整路线。 即便不钦命路径,Microsoft Excel 将文件保留到当前文件夹。
    FileFormat: 可选,文件的保留格式。
    Password :为二个分别轻重缓急写的字符串(不超越十七个字符) ,用于钦定文件的保卫安全密码。
    WriteResPassword: 该字符串表示文件的写爱慕密码。 假诺文件保留时带有密码,但张开文件时不输入密码,则该文件以只读形式展开。
    ReadOnlyRecommended :借使为True则在开荒文件时展现一条新闻,提醒该文件以只读形式张开。
    下例正是在Excel应用程序中增加一专门的学问簿,将职业簿按平常文件格式存为“C:pjobj经济评价.xls”文件,并给该文件钦点保养密码“12”以及写保养密码“23”。
    Sub 爱惜专门的学业簿()
    NewWorkbook = Workbooks.add

    NewWorkbook.SaveAs FileName: ="C: pjobj经济评价.xls", FileFormat:

    XlNormal,Password:="12",WriteResPassword:=″23″
    End sub
    2.采纳VBA中Workbook对象的Protect方法对事业簿的构造和窗口实行保证,Workbook对象的Protect方法包括以下四个参量:
    Password: 为加在职业表或专门的职业簿上有别轻重缓急写的密码字符串。 假如省略本参数,不用密码就能够撤销对该专门的学问簿的保证。不然,撤消对该工作表或职业簿的维护时务必提供该密码。若是忘记了密码,就不可能撤销对该专业表或工作簿的掩护。最棒在平安的 地点保存一份密码及其对应文书档案名的列表。
    Structure: 若为True则尊崇工作簿结构(职业簿江西中华南理哲大学程集团作表的周旋地点)。暗中认可值为False。
    Windows 若为True则珍视专门的学业簿窗口。
    下例正是对一名字为“经济评价.xls”的专业簿达成“结构”和“窗口”敬爱:
    Sub 保养工作簿()
    Workbooks (″经济评价″) .Protect Password: ="1234", Structure: =True,
    Windows:=True
    End sub
    Workbook对象的Unprotect方法用于打消对专门的学业簿的保证。Unprotect方法唯有三个参量,就是维护工作表时所用的口令。
    3.对职业簿进行隐蔽珍重,可使旁人不能够见到其对应的窗口。操作方法如下:
    在VBA中选用Workbook对象下边包车型大巴Windows对象的Visible属性对专门的学业簿举办隐蔽和撤回隐藏,Visible属性的值可取“True”和“False”三种。
    上面程序代码达成对专门的学问簿“book.xls”的隐没:
    Sub 隐藏职业簿()
    Workbooks("book").Activate
    ActiveWindow.Visible = False
    End sub
    或:
    Sub 隐藏职业簿()
    Workbooks("book").Windows(1).Visible=False
    End sub
    对职业表的珍重
    1.对职业表实现口令保护接纳VBA调用Worksheet对象的Protect方法对职业表举办保险,Protect带有以下参量:
    Password 用于爱抚专门的学业表的口令。
    Drawingobjects 若为True,则对工作表中的Drawingobjects对象进行保证,缺省值为True。
    Contents 若为True,则对单元格内容开始展览有限支撑,缺省值为True。
    上边程序代码完毕对工作表“基础数据表”的保证:
    Sub 爱护职业表()
    Worksheets(″基础数据表″).Protect Password:="1234"
    End sub
    2.对工作表完结隐藏珍重,使外人不可能见到专门的学业表:
    行使VBA设置Worksheet对象的Visible属性来掩藏工作表;Visible属性的值为以下多个值中的二个:
    True 工作表为突显状态。
    False 职业表为隐藏状态。
    XlVerHidden 工作表为隐藏状态,且用户不可能透过“打消隐藏”对话框将其改为呈现状态。当Visible的值为XlVerHidden时,只好利用VBA将其再度安装为True。
    Sub 隐藏工作表()
    Worksheets("基础数据表").Visible=False
    End sub
    67、求:将所选区域中的数值全体倒车为"万元"的最简代码.
    求:将所选区域中的数值全体转化为"万元"的最简代码.
    或能成功此功能的最便捷的下令操作.
    写了三个,一得之见:
    Sub convt()
    Dim cel As Range
    Dim dec As Variant
    Application.EnableEvents = False
           yesorno = MsgBox("确实将区域具有数值转变为“万元”?", vbYesNo vbQuestion vbDefaultButton1)
           If yesorno = vbYes Then
    1:     dec = Application.Input博克斯("请输入小数位数:", Default:=0, Type:=1)
           If dec = "" Then
           GoTo 1
           End If
           For Each cel In Selection
           If IsNumeric(cel.Value) Then
           'cel = (Round(cel.Value / 10000, 2)) & "万元"
           cel = (Round(cel.Value / 10000, dec))
           End If
           Next
           ElseIf yesorno = vbNo Then
           Exit Sub
           End If
    End Sub
    以下当为最简代码吧.
    Sub Macro2()
        Selection.NumberFormatLocal = "#"".""#,"
    End Sub
    68、在VBA开辟条件中,点击工具――附加控件,现身如下窗口:
      
    在可选控件中选取microsoft orogressbar control,再点击明确,那时,你会发觉在您的工具箱中追加了过程条工具,如图:

代码如下:

   End Sub

4.摄像三个宏。

  1. 在个人计算机上,经常Excel是在( )系统碰到下运行的。
            A.office97     B.MS-DOS   C.Windows    D.UNIX
    4、Sheet1是Excel中的三个暗中同意( )
            A.工作薄     B.单元格   C.工作表    D.页
    5、在Excel中,假诺输入分数,则需在数值闪加上()
    A. 0与空格    B. 空格与0   C. 空格   D. 0
    6、在Excel中,公式“SUM ($D2:$C$7)”中的$C$7属于()引用。
    A. 相对    B.  相对   C. 列相对行相对的混合 D. 行相对列相对的掺和
    7、在Excel职业表中,系统暗中认可状态下,日期和岁月数据会自动()对齐。
    A. 靠左     B. 靠右    C. 居中     D. 靠上
    8、下述( )不是数量清单应负有的天性。
    A. 叁个多少清单独占一个办事表                B.  数据清单中制止对单元格进行格式化
    C. 其它音讯不要放在数据清单的区域内    D.  数据清单中防止出现空行或空驶列车
    9、下列VB5控件中( )能够自动安装滚动条。
    A. 文本框      B.  图片框    C.  框架     D.  复选框
    10、若想在窗体突显一句提醒消息,下列()控件最适当完成
    A.  框架     B. 标签     C.  单选钮     D. 列表框
    11、下述哪个是VB5法定变量名?( )
    A.  Then     B.   If   C.  %h121     D. Then_1
    12、若想要建设构造三个上学的小孩子处理的输入分界面,当中要很供给选用学生的性别和选用选修课意况(共有5门课,供任选),应什么在窗体利用单选开关和复选框来实现
    A.        将5门课程用一组5个复选框来表示,将性别用一组五个复选框来代表
    B.        将5门科目用一组5个单选框来代表,将性别用一组八个复选框来代表
    C.        将5门学科用一组5个复选框来代表,将性别用一组多少个单选框来表示
    D.        将5门科目用一组5个单选框来表示,将性别用一组五个单选框来代表
    13、假诺在日前VB5窗体有三个个文件框Test3,并有Text3_keyPress过程如下(在那之中变量S1的早先值为0)
    Private Sub Text3_keyPress (keyAscii As Integer)
    Static S1
    If keyAscii=13 Then  '13是回车符的ASCII码)
    S1=S1 1
    Form1.Print S1
    If Text3.Text=”11” Then
      MsgBox “It is OK!”
      Text3.Enabled False
    End
    Else
          If S1=3 Then
         MsgBox “Sorry,invalid password!”
    End
    Else
         MsgBox “Key in password again!”
         Text3.text=””
      End If
    End If
    End If
    End Sub
    当程序运行时用户要在文本框中输入11,回车的后边窗体和荧屏上各会展现:()
    A.        窗体彰显“1”,显示屏上弹出一个信息框,框内展现出“Sorry,invalid password!”
    B.        窗体展现“1”,荧屏上弹出一个新闻框,框内呈现出“Key in password again!”
    C.        窗体展现“1”,显示器上弹出一个新闻框,框内突显出“It is OK!”
    D.        窗体展现“3”,显示屏上弹出叁个新闻框,框内显示出“Sorry,invalid password!”
    三、判断题(每题2分,共30分)
    1、剪贴板中不得不保留最后二回私分或复制的剧情。(    )
    2、要关闭Excel的文书档案窗口,能够用Alt F4快捷键。(    )
    3、Excel97运转后自行张开二个名book1的职业表。(   )
    4、在Excel中, 一个专门的学业表能够涵盖多个专业薄。(    )
    5、在Excel97中,若是在有些单元格输入的公式中央银行使的是绝对地址,则复制该单元公式到另一单元时,Excel会对后一单元的公式作相应的调动。(   )
    6、在Excel中进行数量分类聚焦,不只能够透过实行“数据”菜单中的“分类聚集”命令施行,也足以使用Excel提供的多寡透视表功能达成。前者适合依赖多个字段进展分拣聚焦,后者适合依附叁个字段实行归类聚焦。(   )
    7、在Excel中,当职业表的多少发生变化时,相应图表中的数据系列也会随着变动,反之亦然(  )
    8、使用Excel默许的填充系列效用,可以自行填充出“第一课。。。。第十课”的行列。( )
    9、在VB5的标准控件中复选框控件适用于在一组按键中展现多个选项,但用户只好同临时间必须挑选当中一项。(   )
    10、在VB中,大概有那叁个轩然大波经过不会被试行。那是因为事件进程对应的事件未有发生。(  )
    11、在VB中,变体型变量是一种未有数据类型的变量。(  )
    12、在VB中,Integer类型的等级次序申明符为“!”。 (   )
    13、在VB中,局地变量只在概念它的经过内有效。(  )
    14、在VB5的进度中用Dim评释局部变量是动态变量,其值在经过实施完后仍保留。用Static注明局地变量是静态变量,其值在程序实行完后会磨灭。(   )
    15、在VB中,属性窗体和窗体属性中一回事。(  )
    四、多选题(提示:在下述题前有*标识的题选用是有条理的,每小题2分,共20分)
    1、“关闭计算机的不利步骤为”(  )
    A.  选拔“关闭系统项”     B. 在弹出的对话框接纳“关闭计算机”并单击“明显”按键
    C.  单击“起头”菜单       D. 关闭全数已开拓的窗口
    2、下述输入数据中怎么着是毋庸置疑的Excel97的-6左2分之一? (   )
    A.  –61/2     B. (61/2)     C.  –6  1/2     D. (6  1/2)
    3、在Excel97当前职业表中,假若C5到F5单元格中已有数据型数据,求出C5到F5的总值的公式能够是(  )
    A. Sum(c5,f5)      B. =Sum(c5:f5)     C.  =c5 d5 e5 f5     D. Sum(c5:f5)
    4、下列(   )是Excel97的利用范围。
    A. 制作常常表格      B.  关联数据以及图片应用
    C.  数据模拟运算     D.  数据库的基本操作
    5、倘诺要使A1改为活动单元格,能够(   )。
    A. 单击A1单元格      B.  按Home键   
    C. 按Ctrl Home键     D.  在编辑栏的“名称”框内输入A1然后回车
    6、下述哪些数据不是Excel97中的合法的日期格式的多少。(   )
    A.  1989年12月31号     B.  2001/1/11    C. 04-11-89      D. 1989.12.31
    7、下述哪些是VB中合法的批注语句?(    )
    A.  “这是一个声明”        B.  '那是三个申明   
    C.  Rem 那是三个批注     D.  那是三个解说
    8、*在VB师长窗体的标题设置成“评估显示”的手续为(  );  
    A. 将Caption的值改为“评估展现”      B. 将如今窗体存盘      
    C.  将方今窗体成为宗旨                D. 张开属性窗口
    9、*向窗体加多控件的步调为(   );
    A.  单击工具箱中所需的控件     B. 移动鼠标到窗体中合适地点     
    C.  按下鼠标向另一对角拖曳直到知足释放鼠标     D. 使窗体成为难点

Dim i As Long '注明数值类型变量

Sub xuanqu()

i = i 1 '单元格行号变量

If Range("a" & i) = "" Then i = 1 '遭逢空格再次来到开首

Range("a" & i).Select '选中单元格

MsgBox Range("a" & i), , "采用数字" '提示窗口浮现单元格数据

Application.On提姆e Now() TimeValue("00:05:00"), "xuanqu" '间隔5分钟后循环运行

End Sub

Sub auto_open() '展开文件时自动运转选字模块

xuanqu

End Sub

    Do

 

1、Application.CommandBars("Worksheet Menu Bar").Enabled = false
2、cells(activecell.row,"b").value '活动单元格所在行B列单元格中的值
3、Sub CheckSheet()'假若当前职业薄中没盛名称叫kk的专门的工作表的话,就扩张一张名字为kk的职业表,并将其排在专门的学业表从左至右顺序排列的最左侧的职位,即排在第一的职位
    Dim shtSheet As Worksheet
    For Each shtSheet In Sheets
        If shtSheet.Name = "KK" Then Exit Sub
    Next shtSheet
    Set shtSheet = Sheets.Add(Before:=Sheets(1))
    shtSheet.Name = "KK"
End Sub
4、Sheet1.List博克斯1.List = Array("十七月", "1月", "四月", "七月")'三回性增加项目
5、Sheet2.Rows(1).Value = Sheet1.Rows(1).Value'将三个表中的一行全体拷贝到另贰个表中
6、Sub pro_cell()'将此代码放入sheet1,则me=sheet1,主假诺认识me
Me.Unprotect
Cells.Locked = False
Range("D11:E11").Locked = True
Me.Protect
End Sub
7、Application.CommandBars("Ply").Enabled = False'专业表标签上火速菜单失效
8、Sub aa()'把B1到B12单元格的数额填入c1到c12
For i = 1 To 12
Range("C" & i) = Range("B" & i)
Next i
End Sub
9、ActiveCell.AddComment
Selection.Font.Size = 12'在点选的单元格插入演说,字体为12号
10、Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
End Sub
11、ScrollArea 属性
参照看用于示例本性以 A1 体裁的区域引用格局重回或设置允许滚动的区域。用户不能够选定滚动区域之外的单元格。String 类型,可读写。
说明
可将本属性设置为空字符串 ("") 以允许对整张专门的学业表内全体单元格的选定。
示例
本示例设置第一张专门的工作表的滚动区域。
Worksheets(1).ScrollArea = "a1:f10"
12if application.max([a1:e1])=10 then
msgbox""
commandbutton1.enabled=false
'A1—E1最大的数值达到10时,自动掸出对话框,并冻结按钮
12、本示例将更动的单元格的颜色设为黑古铜色。
Private Sub Worksheet_Change(ByVal Target as Range)
    Target.Font.ColorIndex = 5
End Sub
13、Sub test()'求和
Dim rng As Range, rng2 As Range
For Each rng In ActiveSheet.UsedRange.Columns
        Set rng2 = Range(Cells(1, rng.Column), Cells(Cells(65536, rng.Column).End(xlUp).Row, rng.Column))
        rng2.Cells(rng2.Cells.Count).Offset(1, 0) = WorksheetFunction.Sum(rng2)
Next rng
End Sub
14、将专门的学业薄中的全部n张专业表都在sheet第11中学国建工业总会公司上链接
Sub test2()
Dim Pt As Range
Dim i As Integer
With Sheet1
    Set Pt = .Range("a1")
    For i = 2 To ThisWorkbook.Worksheets.Count
        .Hyperlinks.Add Anchor:=Pt, Address:="", SubAddress:=Worksheets(i).Name & "!A1"
        Set Pt = Pt.Offset(1, 0)
    Next i
End With
End Sub
15、保存全数张开的职业簿,然后退出 Microsoft Excel。
For Each w In Application.Workbooks
    w.Save
Next w
Application.Quit
16、让form标题栏上的关闭按键失效
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = True
End Sub
17、Sub countsh()'获得专门的工作表的总额
MsgBox Sheets.Count
End Sub
18、Sub IE()'展开个人网页
ActiveWorkbook.FollowHyperlink "about:blank"
SendKeys "{F4}ykk1976.anyp.cn{ENTER}", True
End Sub
19、Sub delback()'二回性删除职业簿中保有专门的工作表的背景
For Each shtSheet In Sheets
    shtSheet.SetBackgroundPicture Filename:=""
    Next shtSheet
End Sub
20、[a1].formula="=b1 c1"'A第11中学设定公式为=B1 C1
21、Private Sub CommandButton1_Click()'将A1到C6中抢先=3的数种种放入E列
Dim i As Long
r = 1
For Each i In Range("a1:c6")
    If i > =3 Then Cells(r, 5) = i: r = r 1
Next
End Sub
22、Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)'展现带数字的表名
b = Split(Sh.Name, "(")
On Error GoTo ss
num = CInt(Left(b(1), Len(b(1)) - 1))
If num >= 1 And num < 20 Then
MsgBox Sh.Name
End If
Exit Sub
ss:
MsgBox "error", 16, ""
End Sub
23、Sub Test()'选择具备专门的学问表名以"业报"初阶的专门的学业表或头七个字是业报的报表名引用
Set Sh = ActiveSheet
If Left(Sh.Name, 2) = "业报" Then ' 或if sh.name like"业报*"then
MsgBox "你成功了", 64, ""
End If
End Sub
24、1.起家文件夹的法子
MkDir "D:Music"
2.开垦文件夹的点子
ActiveWorkbook.FollowHyperlink Address:="D:Music", NewWindow:=True
25、在脚下职业表翻页
    Application.SendKeys "{PGUP}", True
    Application.SendKeys "{PGDN}", True
或者
    ActiveWindow.LargeScroll Down:=1
    ActiveWindow.LargeScroll Down:=-1
26、当Target = "*小计"时怎么写,*表示任何字符。
if instr(target.value,"小计")<>0 then
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value Like "*小计" Then MsgBox "OK"
End Sub
27、ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[14]C,R[59]C:R[78]C)"
那是相对引用的写法:依据推算你的函数是身处“AD6”单元格
您的函数:=SUM(R[1]C:R[14]C  中的  "R"表示行     "C"表示列。
R[1]意味着“AD6 1行",C表示“列没有变化,正是同列”那么:本田UR-V[1]C就表示AD7
同理,R[14]表示AD6 14行,表示:AD20。就那样类推。
28、Private Sub CommandButton1_Click()'将A1到C6Chinese Football Association Super League出=3的数各样放入E列
Dim i As Long
Dim iRng As Range
For Each iRng In Sheets(1).Range("a1:c6")
  If iRng.Value >= 3 Then
    i = i 1
    Sheets(1).Range("E" & i).Value = iRng.Value
  End If
Next
End Sub
29、工作表中的窗体按键禁止使用后,按键形状不改变,字体不改变,从外表上不可能见到其已禁止使用,怎么样设置属性使其像控件按纽这样肯定的剥夺?
With ActiveSheet.Buttons(1)
        .Enabled = False
        ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = 15
    End With
復原的方法
    With ActiveSheet.Buttons(1)
        .Enabled = True
        ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = xlAutomatic
    End With
30、Private Sub Worksheet_SelectionChange(ByVal Target As Range'选定A1时要输入密码
If Target.Address = "$A$1" Then
    A = InputBox("请输入密码", "officefans")
    If A = 1 Then [A1].Select Else [A2].Select
End If
End Sub
31、如何将工作薄中的命名单元格成批删除!
Dim Item As Name
    For Each Item In ActiveWorkbook.Names
        Item.Delete
    Next Item
32、平日只赏心悦目到表1,如要看表2和表3,只可以通过表1的链接张开,且表2和表3回到表1后,又不可知。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$A$3" Then   '当点击"$A$3"单元格时...
     Sheet2.Visible = 1  '撤除隐藏
   Sheet2.Activate '激活
   ActiveSheet.Range("A1").Select
End If
If Target.Address = "$A$6" Then
Sheet3.Visible = 1  '打消隐藏
Sheet3.Activate
ActiveSheet.Range("A1").Select
End If
End Sub
33、将a2单元格内容替换为a1剧情
ActiveCell.Replace What:=[a2], Replacement:=[a1]
34、若是是要填入名称,则:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = ComboBox1.column(1)
End Sub
若果是要填写代码和名称的组合 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = cstr(ComboBox1.column(0)) " " combobox1.column(1)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = ComboBox1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'target.row  代表行号
    'target.column 代表列号
    i=target.row   '获取行号
    j=target.column '获取列号
End Sub
35、当激活专门的工作表时,本示例对 A1:A10 区域进行排序。
Private Sub Worksheet_Activate()
    Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
36、BeforePrint 事件
参照他事他说加以调查应用于示例脾气在打字与印刷钦点工作簿(大概在那之中的其他内容)从前,发生此事件。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel      当事件发生时为 False。假诺该事件经过将本参数设为 True,则当该进度运转甘休将来不打字与印刷专门的学业簿。
示例
本示例在打字与印刷在此以前对近期移动专业簿的具有专门的职业表重新计算。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    For Each wk in Worksheets
        wk.Calculate
    Next
End Sub
37、Open 事件
仿照效法应用于示例天性展开专门的学问簿时,将生出技巧件。
Private Sub Workbook_Open()
示例
每一回张开专业簿时,本示例都最大化 Microsoft Excel 窗口。
Private Sub Workbook_Open()
    Application.WindowState = xlMaximized
End Sub
38、ActiveSheet 属性
参照料用于示例性格重回一对象,该对象表示活动专门的学业簿中的,只怕钦命的窗口或专门的学问簿中的活动专门的学问表(最上边的职业表)。只读。要是未有运动的职业表,则赶回 Nothing。
说明
若是未提交对象识别符,本属性再次来到活动职业簿中的活动职业表。
要是某一工作簿在多少个窗口中冒出,那么该职业簿的 ActiveSheet 属性在不一致窗口中只怕不一样。
示例
本示例呈现活动职业表的称号。
MsgBox "The name of the active sheet is " & ActiveSheet.Name
39、Calculate 方法
参照顾用于示例性子计算有所张开的职业簿、专门的学业簿中的一张特定的工作表或然办事表中钦命区域的单元格,如下表所示:
要计算 依据本示例
不无展开的做事簿 Application.Calculate (或只是 Calculate)
钦赐专门的学问表 钦赐工作表
点名区域 Worksheets(1).Rows(2).Calculate
expression.Calculate
expression      对于 Application 对象可选,对于 Worksheet 对象和 Range 对象必需。该表明式重返“应用于”列表中的对象之一。
示例
本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式。
Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate
先后的骨干是算法难题
40、End 属性
参照他事他说加以考查应用于示例脾气重回贰个 Range 对象,该对象表示包蕴源区域的区域尾端的单元格。等同于按钮 End 向上键、End 向下键、End 向左键或 End 向右键。Range 对象,只读。
expression.End(Direction)
expression      必需。 该表明式重临“应用于”列表中的对象之一。
Direction      XlDirection 类型,必需。所要移动的趋向。
XlDirection 可为 XlDirection 常量之一。
xlDown
xlToRight
xlToLeft
xlUp
示例
本示例选定包涵单元格 B4 的区域中 B 列顶上部分的单元格。
Range("B4").End(xlUp).Select
本示例选定包涵单元格 B4 的区域中第 4 行尾端的单元格。
Range("B4").End(xlToRight).Select
本示例将选定区域从单元格 B4 延伸至第四行最后一个饱含数据的单元格。
Worksheets("Sheet1").Activate
Range("B4", Range("B4").End(xlToRight)).Select
41、应用于 CellFormat 和 Range 对象的 Locked 属性。
本示例解除对 Sheet1 中 A1:G37 区域单元格的锁定,以便当该职业表受珍视时也可对那一个单元格进行退换。
Worksheets("Sheet1").Range("A1:G37").Locked = False
Worksheets("Sheet1").Protect
42、Next 属性
参照拂用于示例性格再次来到五个 Chart、Range 或 Worksheet 对象,该指标表示下二个专门的学问表或单元格。只读。
说明
一旦钦点对象为区域,则本属性的效益是仿照 Tab,但本属性只是回来下一单元格,并不选定它。
在地处保险情形的办事表中,本属性重临下贰个未锁定单元格。在未体贴的劳作表中,本属性总是回到紧靠钦赐单元格左侧的单元格。
示例
本示例选定 sheet1 中下一个未锁定单元格。借使 sheet1 未爱惜,选定的单元格将是紧靠运动单元格左侧的单元格。
Worksheets("Sheet1").Activate
ActiveCell.Next.Select
43、想透过target来设置(A1:A10)区域内有变动,就发生此事件。不知底怎么
if target.row = 1 and target.column <=10 then
Sub 列举菜单项()
Dim r, s, i As Integer
r = 1
For i = 1 To CommandBars.Count
    ActiveSheet.Cells(r, 1) = "CommandBars(" & i & ").Name:" & CommandBars(i).Name
    r = r 1
    For s = 1 To CommandBars(i).Controls.Count
        ActiveSheet.Cells(r, 1) = s & "、" & CommandBars(i).Controls(s).Caption
        r = r 1
    Next
Next
End Sub
44、本示例设置 Microsoft Excel 每当张开包涵链接的公文时,询问用户是还是不是更新链接。
Application.AskToUpdateLinks = True
45、自定义函数
Public Function Now1()
Dim string1 As String
  string1 = VBA.Date
  Now1 = string1
End Function
46、复制
Sub copy1()
Sheet2.Range("C5:C10").Copy Sheet1.Range("C5:C10")
End Sub
47、怎么样总括表中sheet的个数?
msgbox sheets.count
Columns("G:G").Select
48、 Selection.EntireColumn.Hidden = True
那般暗藏有个毛病,怎么着化解?若是A1:G1单元格合并的话,就把A:G列均隐藏了。
Columns("G:G").EntireColumn.Hidden = True
49、在VBA中引用excel函数的措施
1). Worksheets("Sheet1").Range("A1").Formula = "=$A$4 $A$10"
2). Sheet1.Cells(1,1).Formula = "=" & Sheets(iii).Name & "!R1C4"
在宏中用君越1C1方法写时表格1的A第11中学会在写为“=Sheet2!$D$1”
用这种形式,想用什么函数就用哪些函数.
50、选定下(上)贰个工作表
sheets(activesheet.index-1).select
sheets(activesheet.index 1).select
51、Private Sub Workbook_Open()
   ActiveWindow.DisplayWorkbookTabs = False '撤除专门的学业表标签
   Application.CommandBars("Sheet").Controls(1).Enabled = False '格式_专门的学问表不可能重命名
   Application.CommandBars.FindControl(ID:=889).Enabled = False '右键菜单无法重命名
End Sub
52、 [a65536].End(xlUp’A列从下往上首先个非空的单元格
53、Sub macro()
Set rng = Range("C11:F13")           定义奔驰M级NG为三个单元格区域
For Each cel In rng                   定义CEL为KoleosNG中的多少个任一单元格
colo = cel.Interior.ColorIndex        定义 COLO 为单元格CEL的填写颜色
If colo <> -4142 Then                 借使COLO的值不等于-4142
iR = [b65536].End(xlUp).Row 1        I途乐等于B列数据区域的行数 1
If [a65535].End(xlUp).Value <> Cells(cel.Row, 2) Then Cells(iR, 1) = Cells(cel.Row, 2)   
借使A列最终叁个非空值单元格  不对等Cells(cel.Row, 2) 的值 那么单元格Cells(i卡宴, 1) 的值等于Cells(cel.Row, 2)   的值    CEL.ROW是C11:F第13中学随机单元格的行号
Cells(iR, 2) = Cells(10, cel.Column)   
Cells(iR, 3) = cel.Value
Cells(i景逸SUV, 4) = IIf(colo = 36, "Yellow", "Red")    Cells(i纳瓦拉, 4) 的值借使colo = 36那么值为"Yellow",不然值为"RED"
next
End Sub
54、Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'**********运作数据日志记录**********
Dim rng As Range
    If ActiveSheet.Name <> "主分界面" And ActiveSheet.Name <> "目录索引" Then
    For Each rng In Target.Cells
        Changecell = ActiveSheet.Name & ",单元格:" & rng.Address(0, 0) & ",改造为:" & rng.value & "。改换时间:" & Now
        CritOrAddtext
    Next
    End If
End Sub
55、ActiveSheet.Unprotect   '打消当前工作表保养
If ActiveSheet.Name <> "主分界面" And ActiveSheet.Name <> "目录索引" And Target.Row > 3 Then    '行变色
On Error Resume Next
[ChangColor_With].FormatConditions.Delete
Target.EntireRow.Name = "ChangColor_With"
With [ChangColor_With].FormatConditions
                  .Delete
                  .Add xlExpression, , "TRUE"
                  .Item(1).Interior.ColorIndex = 4
End With
End If
ActiveSheet.Protect
56、在C1中弄个下拉无表,实际是实用,你能够选择A1:Levin为C1单元格有效性的连串数据源,假如说C1不与A1:C驭胜IDE瑞鹰在同样表,则不能这么用,应超过对A1:PASSAT命名,然后把数据源改为名称.
57、自动扩展工作表
跻身宏命令编辑窗口,在Sub 自动扩张专门的学问表()命令后千家万户键入如下宏命令内容:
Dim i&, userinto
i = 0
userinto = InputBox("输入插入职业表数量:")
If IsNumeric(userinto) = True Then
Do Until i = userinto
Worksheets.Add
i = i 1
Loop
End If
End Sub
58、方法一(共享级锁定):
    1、先对EXCEL文件举办一般的VBAProject”工程密码爱戴。
    2、张开要尊崇的文件,选用:工具--->尊敬--->爱慕并共享职业簿--->以追踪修订情势共享-->输入密码-->保存文件。
   完结后,当你打开“VBAProject”工程属性时,就将会提醒:“工程不可看!“
办法二(推荐,破坏型锁定):
    用16进制编辑工具,如WinHex、Ultraedit-32(可到此下载)等,再历害点的人统统能够用debug命令来做......用以上软件展开EXCEL文件,查找定位以下地点:
ID="{00000000-0000-0000-0000-000000000000}"    注:实际显示不会全部为0
    此时,你只要将内部的字节随意修改一下就能够。保存再展开,就能意识马到功成!
    当然,在修改前最佳做好您的文书档案备份。至于苏醒只要将转移过的地点还原就可以(只要你朝思暮想了呵呵)。
顺手说一句,这种情势依然是可破解的,因为加密总是相对的 。
59、Sub AddComments()
'自動對ActiveSheet全数有公式格位加上註解
    Set RG = Cells.SpecialCells(xlCellTypeFormulas)
    For Each c In RG
        c.AddComment
        c.Comment.Text Text:=c.Formula
    Next c
End Sub
Sub De_Comments()
'自動消除全部註解
    Set RG = Cells.SpecialCells(xlCellTypeFormulas)
    For Each c In RG
        c.ClearComments
    Next c
End Sub
60、怎样在Excel里应用电火花计时器
www.aspsky.net  二〇〇三-3-12 20:53:27  动网先锋
    用过 Excel 97 里的加载宏 "定时保存" 吗?可惜它的源程序是加密的,今后就上传一篇介绍实现它的文书档案。
     在 Office 里有个措施是 application.ontime ,具体函数如下:
     expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
     倘诺想进一步询问,请参阅 Excel 的援救。
     那一个函数是用来布局三个进程在现在的特按期期运作,(可为某些日期的钦定时期,也可为钦点的时日段之后)。通过那个函数大家就足以在 Excel 里编写自个儿的按时程序了。下边就举五个例子来验证它。
     1.在中午 17:00:00 的时候显得一个对话框。
     Sub Run_it()
     Application.OnTime TimeValue("17:00:00"), "Show_my_msg"
     '设置放大计时器在 17:00:00 激活,激活后运维 Show_my_msg 。
     End Sub
     Sub Show_my_msg()
     msg = MsgBox("以后是 17:00:00 !", vbInformation, "自定义务消防队息")
     End Sub
     2.效仿 Excel 97 里的 "自动保存宏",在那边定时 5 秒出现叁次
     Sub auto_open()
     MsgBox "招待您,在这篇文书档案里,每 5 秒出现三回保存的提示!", vbInformation, "请小心!"
     Call runtimer '张开文书档案时自动运维
     End Sub
     Sub runtimer()
     Application.OnTime Now TimeValue("00:00:05"), "saveit"
     ' Now TimeValue("00:15:00") 内定在时下日子过 5 秒钟起初运营Saveit 这一个历程。
     End Sub
     Sub SaveIt()
     msg = MsgBox("朋友,你早已工作很久了,将来就存盘吗?" & Chr(13) _
     & "选用是:立时存盘" & Chr(13) _
     & "选拔否:暂不存盘" & Chr(13) _
     & "选用裁撤:不再出现这几个提醒", vbYesNoCancel 64, "休憩一会吧!")
     '提示用户保存当前活动文书档案。
     If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit Sub
     Call runtimer '假如用户并未有选采纳消就再也调用 Runtimer
     End Sub
        以上只是七个轻便的事例,风乐趣的话,能够使用 Application.Ontime 这么些函数写出更加多更使得的定期程序。
    Sub Show_my_msg()
     msg = MsgBox("今后是 17:00:00 !", vbInformation, "自定义音信")
     End Sub
       2.模仿 Excel 97 里的 "自动保存宏",在此处定期 5 秒出现二次
     Sub auto_open()
     MsgBox "接待您,在那篇文书档案里,每 5 秒出现三回保存的唤醒!", vbInformation, "请小心!"
     Call runtimer '展开文书档案时自动运营
     End Sub  
     Sub runtimer()
     Application.OnTime Now TimeValue("00:00:05"), "saveit"
     ' Now TimeValue("00:15:00") 钦命在时下时刻过 5 分钟初阶运转Saveit 那么些历程。
     End Sub

回答:

          MsgBox "A文件展开了"

         Sub e1()

上边说说进程条的用法:
天性:Max: 设置进度条控件的最大值
  Min:  设置进度条控件的最小值
 Value:设置进程条控件对象的当前值
  Scrolling: 进程条的方式,即一格一格的进程条或是未有间隔的进程条。
例子:Private Sub UserForm_Activate()
For i = 1 to 5000
    ProgressBar1.马克斯 = 5000 '设置进程条控件的最大值
    ProgressBar1.Value = I  '进程条控件对象的此时此刻值
next
End Sub
在程序中进入进程条的法门是将ProgressBar1.马克斯=最大值,ProgressBar1.Value = 当前值放入循环中去。
69、 Excel是三个杰出的石英钟格软件,假诺您编的主次要求以报表的情势显得最终结果,它会是个不错的选拔。你能够透过VB调控Excel展现数据表格。如果你不乐意深刻领悟Excel这一个零碎的内幕,也不是从未有过权宜之计:你能够张开Excel中的工具→宏→摄像新宏,然后开始展览手工业操作,甘休后把所录的宏代 码贴进你的VB程序就行。那样获得的次序一般都能健康运营,但里面包车型客车宏代码往往远远不够简洁,功效和可读性都不高。
   Excel编制程序碰着的第二个难题是表头。有时表头的格局比较复杂,供给横向或纵向合并单元格。请放心,只要没有斜杠,Excel都能应付得了。
   比方合并A2~A5那4个单元格,你摄像的宏代码会是如此:
Range("A2:A5").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
   而和谐编程只要一句 Range.(“A2:A5”).mergecells=True 就能够缓慢解决难题。
   表头格局定了,再不怕表头的剧情。如若单元格中的文本长度超越了列宽,往往只可以突显部分剧情,行尾那一格的内容则会“越境”进入右边那些空白单元格,很欠赏心悦目。这几个标题得以因而在先后中设置列宽加以消除。
   Columns(14).columnwidth=12 '设置第14列列宽为12(缺省列宽为8.38)
   假若您不乐意劳神去逐列估计实际所需的列宽,干脆来一行
   Columns(“a:i”).autofit 'a到i列自动调度列宽
   让Excel相机行事呢。
   但只怕你不爱好这种方法,以为表头撑大了列宽,弄得浏览一张小表格还得向右滚动,太不便利了。即使能维系暗中同意列宽,让文本自动换行就好了。没问题,Excel包你中意。
   Rows(3).WrapText=True '让第三行各单元格中的文本自动换行
   不过你最佳再加一句 Rows(3) .VerticalAlignment = xlTop 让表头自动进化对齐,那样相比适合习贯。
   你还足以给表头打上底色,让你的读者不至于看了打哈欠。
   Rows(2). Interior .ColorIndex = 5 装置第2行底色为深橙
   再给表格的标题上色,那样更精通一点。
   Rows(1).Font.ColorIndex=4
   表头完毕后该填数据了,三个二个地填实在是太? ,假诺您的数目是存放在在一个二维数组中,那难点就归纳多了。
Dim Data(3,4)
………… '数据管理
Range(“a2:d4”).Value=Data
   那样能够一回填入二个表的富有数据,够快了吧!然而提示一句,Range对象大小最棒与数组相称,小了不可能体现所有数据,大了则会在空白单元格只填入“N/A”表示尚无收获数据。
   若是急需在结果中显得多少个一律规格的数据表,想在Range对象中投入循环变量,那也好办。
Dim cell11,cell2
Dim Data(3,4)
…………
For I =1 to 40
………… '数据管理
Set cell1=Worksheets("Sheet1").Cells(5*I-4,1)
Set cell2=Worksheets("Sheet1").Cells(5*I-2,4)
Worksheets("Sheet1").Range(cell1,cell2).value=Data
Next I
   表格填完了,未来该打表格线了,以下几条语句能够满意你的渴求:
With Worksheets("Sheet1").Range(cell1,cell2).borders
.LineStyle=xlContinuous
.weight=xlThin
End With
 70、《Computer实用软件》二〇〇四-2003首先学期考卷(2)
一、填空题(每空1分,共20分)
1.在Excel的系统暗中同意状态下,某些专门的工作表的价签呈赤褐展现,表示其为           。在专门的学业表中被粗线框住的的格子称为        。
2.在Excel工作表中能够输入两类数据它们是              和               
3.  行事表由           行和           列组成
4.输入Excel公式应以           也许            开端,然后再输入具体的计算公式
5.在Excel中,系统暗许状态下,输入文字的对齐情势是           ,输入数字的对齐形式是               
6.在VB5的专门的学业控件中               控件适用于在一组开关中显得八个选用,但用户只可以同期必须选取之中一项。          控件适用于放置用户只好见到但不能够改改的微量文书。
7.在VB中,要改成Text1文本框内显示的信息时,应当在其           窗口中,
将       属性进行双重设置。
8.VB5表达(40 Mod 7)2的值是            2x2的VB5表达式为        
9.如下程序完成在当下窗口中显示一个音讯框,新闻框中彰显有“是(Y)”和“否(N)”多少个开关,试将该程序填写完整,使用户点击“是(Y)”按键后能展现出数字1,点击“否(N)”按键后能显得出数字2
Private Sub Form_Click()
Msg=’你想要继续吗?”
Style=vbYesNo
Response=msgbox(msg ,               )
If   Response            vbYes        
Print“1”
Else
End if
End  Sub
二、单选题(每题3分,共30分)
1.        Excel首要用以(  )领域。
.        A.  雕塑设计、装璜      B. 数据分析、财务管理
        C工业规划、机械创制     D.多媒体制作
2.        对话框窗口中的“分明”开关的意义是(  )
        A. 明显输入的音讯       B. 显著各采纳并起先实行
        C. 关闭对话框不做其余事 D.退出对话框

图片 1

     ActiveSheet 表示活动职业表,光标所在职业表

   图片 2

121、玖19个谬误类型
1   应用程序定义或对象定义错误
2   应用程序定义或对象定义错误
3   无 GoSub 返回
4   应用程序定义或对象定义错误
5   无效的进度调用或参数
6   溢出
7   内部存款和储蓄器溢出
8   应用程序定义或对象定义错误
9   下标越界
10  该数组被固化或有时锁定
11  除数为零
12  应用程序定义或对象定义错误
13  类型不相称
14  溢出串空间
15  应用程序定义或对象定义错误
16  表明式太复杂
17  不可能进行所需的操作
18  出现用户中断
19  应用程序定义或对象定义错误
20  无不当苏醒
21  应用程序定义或对象定义错误
22  应用程序定义或对象定义错误
23  应用程序定义或对象定义错误
24  应用程序定义或对象定义错误
25  应用程序定义或对象定义错误
26  应用程序定义或对象定义错误
27  应用程序定义或对象定义错误
28  溢出饭馆空间
29  应用程序定义或对象定义错误
30  应用程序定义或对象定义错误
31  应用程序定义或对象定义错误
32  应用程序定义或对象定义错误
33  应用程序定义或对象定义错误
34  应用程序定义或对象定义错误
35  子进度或函数未定义
36  应用程序定义或对象定义错误
37  应用程序定义或对象定义错误
38  应用程序定义或对象定义错误
39  应用程序定义或对象定义错误
40  应用程序定义或对象定义错误
41  应用程序定义或对象定义错误
42  应用程序定义或对象定义错误
43  应用程序定义或对象定义错误
44  应用程序定义或对象定义错误
45  应用程序定义或对象定义错误
46  应用程序定义或对象定义错误
47  DLL 应用程序客户太多
48  加载 DLL 错误
49  DLL 调用约定错误
50  应用程序定义或对象定义错误
51  内部错误
52  文件名或文件号错误
53  文件未找到
54  文件方式错误
55  文件已开采
56  应用程序定义或对象定义错误
57  设备 I/O 错误
58  文件已存在
59  记录长度错误
60  应用程序定义或对象定义错误
61  磁盘已满
62  输入高出文件尾
63  记录号错误
64  应用程序定义或对象定义错误
65  应用程序定义或对象定义错误
66  应用程序定义或对象定义错误
67  文件太多
68  设备不可用
69  应用程序定义或对象定义错误
70  拒绝的权柄
71  磁盘未希图好
72  应用程序定义或对象定义错误
73  应用程序定义或对象定义错误
74  不可能更名称叫分化的驱动器
75  路线/文件访问错误
76  路线未找到
77  应用程序定义或对象定义错误
78  应用程序定义或对象定义错误
79  应用程序定义或对象定义错误
80  应用程序定义或对象定义错误
81  应用程序定义或对象定义错误
82  应用程序定义或对象定义错误
83  应用程序定义或对象定义错误
84  应用程序定义或对象定义错误
85  应用程序定义或对象定义错误
86  应用程序定义或对象定义错误
87  应用程序定义或对象定义错误
88  应用程序定义或对象定义错误
89  应用程序定义或对象定义错误
90  应用程序定义或对象定义错误
91  对象变量或 With 块变量未安装
92  For 循环未初始化
93  无效的形式串
94  无效使用 Null
95  应用程序定义或对象定义错误
96  由于目的已经激活了事件接受器援助的最大数量的风浪,不可能选用对象的风云
97  不能调用对象的友元函数,该对象不是所定义类的一个实例。
98  属性或方法调用不能够包涵对私有对象的引用,不论是作为参数依然作为再次来到值
99  应用程序定义或对象定义错误
100 应用程序定义或对象定义错误

其次步,编写代码流程:开采工具→Visual Basic→插入(选拔模块)→模块1(双击)→经考试录替代码(附后)→保存(二〇〇五后的本子要保存为启用宏的专门的学问簿.xlsm);图片 3

     (2)长整型(Long):

           Range("b1") = "0"

101、ActiveSheet.Next.Select选用活动事业表下一张职业表,
ActiveSheet.Previous.Select选上一张
102、单元格B2:B10数值不全为空用IF语句表明
For Each cl in ActiveSheet.Range("B2:B10")
If cl.Value <> "" then
msgbox "有非空单元格"
Exit For
endif
next
103、用Range引用单元格和单元格区域
Range("A1") 单元格A1
Range("A1:B5") 从单元格A1到B5区域
Range("A1:B5 ,B1:B7") 多块的选定区域
Range("A:A") A列
Range("1:1") 第一行
Range("A:C") A列到C列的区域
Range("1:5") 第1行到第5行的区域
Range("1:1,3:3") 第1、行
Range("A:A,C:C") A列、C列
104、用Cells及数码引用单元格
Cells(6,1)A6单元格
假若对专门的学问表用Cells属性时不钦点索引,表示援引工作表上的持有单元格,下例清除活动工作簿中劳作表Sheet1上有所单元格的内容
Worksheets(“sheet1”).Cells.ClearContents
105、可用变量代入单元格索引值,故Cells属性特别适用于在单元格区域中循环,如:
For counter=1 To 20
Worksheets(“sheet1”).Cells(counter,3).value=counter
Next counter
106、引用行或列
Rows(1) 第1行
Rows 所有行
Columns(1)  第1列
Columns(“C”) 第3列
Columns 工作表上全数列
106、可用方括号将A1体裁的引用或命名区域的名称括起来,作为Range属性的快捷情势,那样就不必键入Range 和引号,如
Worksheets(“sheet1”).[A1:B2].clearContents
[MyRange].Value=30
107、用Offset管理按相对于别的单元格的某一职分的常用办法是运用Offset属性,本例将移动职业表上移动单元格下一行和左侧三列的单元格的原委设置为下划线,如:
ActiveCell.Offset(1,3).font.Underline=XlDouble
108、把其他专门的职业表Sheet2数额,读到当前工作表的措施列举
1)[A1]=Sheet2.[A1]    把Sheet2A1单元格的多寡,读到A1单元格
2)[A2:A4]=Sheet2.[B1]  把Sheet2单元格B1的数目读到A2:到FIT单元格
3)Range(B1”)=Sheet2.Range(“B1”)  把Sheet2工作表单元格B1数码,读到B1单元格
4)Range(“C1:C3”)=Sheet2.Range(“C1”)  把Sheet2职业表单元格C1数目,读到C1:C3
5)Cells(1,4)=Sheet2Cells(1,4)   把Sheet2职业表单元格D1数据,读到D1 单元格
6)Range(Cells(1,5),Cells(5,5)=Sheet2.Cells(1,5)  把sheet2工作表单元格E1多少,读到E1:E5单元格
7)Selection.Value=Sheet2.[F1]  把Sheet2 职业表单元格[F1]数据,读到任何你点选的单元格
109、Sub前有个Private表示是私有子程序,那个子程序不会现出在“宏”对话框中
110、Sub test()
ActiveSheet.Calculate
End Sub重算活动职业表
111、编制程序前应该尽量地多了然Excel对象的品质、方法
112、每一个Excel对象的属性、方法的调用都要经过OLE连接的三个或多少个调用,这个OLE调用都以内需时刻的,减弱使用对象引用能加快VBA代码的运营
113、使用With语句
Workbooks(1).Sheets(1).Range(“A1:A1000”).font.Name=”Pay”
Workbooks(1).Sheets(1).Range(“A1:A1000”).Font.Fontstyle=”Bold”…
改用With语句则运营速度加速
例:With Workbooks(1).Sheets(1).Range(“A1:A1000”).font
.Name=”Pay”
.Fontstyle= Bold”

End With
114、用set设置对象变量,以缩减对象的拜会,如:
Set MyRange=Workbooks(1).Sheets(1)
Mysheet.Range(“A1”).Value=100
Mysheet.Range(“A2”).Value=200
比间接用Workbooks(1).Sheets(1). Range(“A1”).Value=100
Workbooks(1).Sheets(1). Range(“A2”).Value=200运行快
115、在循环中要尽是减弱对象的造访
For k=1 To 100
Sheets(“sheet1”).select
Cells(k,1).value=Cells(1,1).Value
Next k
越来越快的代码是
set TheValue=Cells(1,1).Value
Sheets(“sheet1”).select
For k=1 To 100
Cells(k,1).value=TheValue
116、裁减对象的激活和挑选
若是你是通过摄像宏的来读书VBA的主次里一定充满了目标的激活和选择,如Workbooks(XXX).active 、Sheets(XXX).Select  、Range(XXX).Select等,但实际大大多情景下这个操作不是必须的,如
Sheets(“sheet1”).Select
Range(“A1”).Value=100
Range(“A2”).Value=200
可改为With sheets(“Sheet3”)
.Range (“A1”)=100
.Range (“A2”)=200
117、关闭显示屏更新是增加运转速度的最管用的主意,推荐应用
Application.ScreenUpdate=False
程序运行后再改回来
118、VBA中默许的数据类型是Variant,你不能够不选拔选用何种数据类型,因为Variant数据类型占用存款和储蓄空间很大(16或22字节)而且它将震慑程序的属性,Vba必须识别Variant类型的变量中存款和储蓄了何种数据类型。
119、再列三个自定义函数计算价格为百分之十为运费的大约函数例子
Public Function Shipping(Price)
Shipping=Price*0.1
End Function
如依然不懂的话,将上述进度复制到模块中,然后在劳作表任性单元格中输入=Shipping(C1)你就可以领会
120、ActiveWindow.DisplyGridlines=False  此句用来关闭网格线。

多谢您的读书!作者是#Excel财务VBA#,懂会计的程序猿,Excel&VBA通晓。上边回答假设对你有救助,或有不通晓的标题,或索要越多自动化财务表单模板下载,或询问越来越多实战本领分享。请记得点"关切"小编的头条号“Excel财务VBA”哦!也可私信

回答:

可不可以详细一点您的要求?

每隔五分钟取八个数字是在哪个地方取数字?

取的数字要用来做什么样等等都没表唐宋楚咧。

      Range("a1").Value = 100     ’给单元格a1填充数值100

     Sub t1()

81、Rem:将活动单元格从A5移到A6,并将A6单元格的数值保存到x变量中
range("A5 ").select此命令正是选用A5单元格
Activecell.offset(1,0).select
X=activecell.value
82、用代码窗口中可用F8运转宏,Alt F8来得宏对话框,Alt F11足以张开VBE编辑器
83、Option Explicit  在程序代码前使用该命令,则变量要在注明后技能使用,不然编写翻译程序无法辨认该变量,从而产生错误音讯
84、 Load语句用于加载窗体,加载后将攻下内部存款和储蓄器,Hide方法使窗体隐藏,但仍在内部存款和储蓄器中,故不再使用窗体时应利用Uuload语句及时卸载,将内部存款和储蓄器交还系 统,Show方法用来显示三个窗体,格式: 窗体名称.show 方式,格局可取0或1,为1时,无法到别的窗体操作,只有关门该窗体后技术对别的窗体操作
85、控件的命名规则,常常使用3个假名的前缀命名控件,如Label的前缀为lbl,初学者最佳养成杰出的命名习贯
86、按下Ctrl Enter键单元格不移步。
87、按下F2键直接在单元格内编辑,不需动鼠标
88、命令按键不援救双击(Dbclick)事件
89、Private Sub CheckBox1_Click()
If CheckBox1.Value Then
MsgBox "333"
Else
MsgBox "666"
End If
End Sub
本段的重概略图在于驾驭了If CheckBox1.Value Then与If CheckBox1.Value=True Then
90、Timer是电磁打点计时器,功效是按指定时期间隔发生定期事件
91、在三个言语要分行展现的地方加一个或多少个空格,加八个下划线_然后回车转入下一物理行,作用在于代码一行写不下时续行,程序代码中一行十分的短时可加:把多行连成一行突显
92、if a>15 then
b=10
else
b=100
end if
可改为如下if语句
b=iif(a.15,10,100)
93、F12用以运转另存为对话框
94、x=shell(calc.exe,1)可张开总结器程序
95、 call语句格式:Call<子进度名>[(<实际参数表>)]借使经过本人并未参数,则实参和括号可粗略,并报参数放在括号 中,另三个调用Sub进度的章程是: <子进程名>[<实际参数表>]比前三个少了Call和括号,子进程调用语句的实参在数据、类型、排列上与子进程定义语句的样式 参数表一致
96、自定义函数一例,求abc四个数的平分
Private Function Passed(By Val a As integer, By Val b As integer, By Val c As integer)
ave=(a b c)/3
End Sub
在概念时务必向函数进程名赋值,而子程序名无法赋值
97、在干活表任性单元格输入=Cell("filename")可获得文件的完全路径、文件名和做事表名
98、在展开Excel文件时按住Shift键,将不运维VBA进程,可幸免宏病毒,单击文件 关闭命令,在点关门时按住Shift键将在不运转VBA进度的场所下关闭专门的学业簿,可幸免关闭时自动运转的宏病毒。
99、让二个变量获得单元格A1到A5的总额(变量设为X),
X=Sum(Range(“A1:A5”)) 错
X=Application.WorksheetFunction.Sum(Range(“A1:A5”))正确
也正是说必须经过Application的WorksheetFunction属性直接调用专门的学业表函数
100、Rem和'是注释符,注释语句是非实践语句,要养成对代码注释的习于旧贯。

其三步,结果预览。

   2 为啥要证明变量

         

71、1.文本菜单栏(Excel自带的)
文件就叫Commandbars("File"),你能够在张开命令后加个菜单,类似的,编辑就是Commandbars("艾德it"),视图正是Commandbars("View"),这一个不会因语言版本不相同而分歧,全部都是大同小异的。
2.快捷菜单栏
类似那个打印啊、张开文件啊、居中对齐啊那些呢,叫Commandbars("Standard"),那五个字体大小啊,颜色啊,就叫("Formatting")。
3.右键
Excel的右键也是能够变动的,名称叫:Commandbars("Cell")
4.自定蒿菜单
就疑似于数据透视表的那么些变化的窗体,不用名字,用Commandbars.add就能够追加了,最轻松易行了。倘诺不可能运作,记得加个Application.在Commandbars的日前。
72、 由于公司合同较多,每趟缴印花税时,总结每份印花税所须要的各面额印花的张数是一件相比繁琐的事。如:这份合同须求上缴23元的印花税则须求买两张10 元、一张2元、一张1元面额的印花。幸亏有Excel这些财务和会计职员的高明工具,小编编写了一段宏代码来机关帮本身计算各面额印花的张数,既高效又便利。想到还恐怕有成都百货上千同行要做那项职业,所以写下去与我们共享。具体操作如下:
  新建贰个Excel文件存为stampduty.xls,进入宏编辑器(Alt F11)在ThisWorkbook中投入以下代码:
'印花税各面额印花张数计算程序 BY-RAY DENG
'用途:已知印花税额,总结各面额印花张数
'使用格局:做好工具条后,只要选取要总括的固有数据,点击"印花税面额总计"工具条就可以.
' (请不要挑选全列,不然无效的猜测太多.)
Sub stamp_duty()
Static flagcal As Integer '总结评释,第叁回总结时清空总结结果页,不然在结果页追加计算结果
Static rowbegain As Integer '计算结果页上可用行号,总括结果扩充时从那边早先
Dim filename As String '展开的须要计算数据的文件名
Dim moneytype(7) As Single '定义面额
Dim money As Single
Dim billno As Integer '票额张数
filename = ActiveWorkbook.Name '记录当前开垦的文本名
If filename = VBAProject.ThisWorkbook.Name Then '不要在自家这一个文件中操作
MsgBox "请选取此外文件中的数据!", vbInformation vbOKOnly
Exit Sub
End If
Application.ScreenUpdating = False '将显示器更新关闭,可加速宏的周转速度
billno = 0 '计数清0
moneytype(0) = 100 '印花税面额为0.5-100,以0.5为舍入规范
moneytype(1) = 50
moneytype(2) = 10
moneytype(3) = 5
moneytype(4) = 2
moneytype(5) = 1
moneytype(6) = 0.5
VBAProject.ThisWorkbook.Sheets(1).Activate '展开结果页
If flagcal = 0 Then '假使为率先次总计,则清空结果页
Cells.Select
Selection.ClearContents
Range("A1").Select
End If
ActiveSheet.Cells(1, 1) = "Origin DATA" '先写上表头
For i = 0 To 6
ActiveSheet.Cells(1, i 2) = moneytype(i)
Next i
Workbooks(filename).Activate '转到要计算的原本数据数据文件
rowno = ActiveWindow.RangeSelection.Rows.Count '所选区域有几行
rowstart = ActiveWindow.RangeSelection.Row '起始行
colstart = ActiveWindow.RangeSelection.Column '起始列
j = rowbegain '结果页中写结果的起先行
For i = 1 To rowno '发轫读原始数据
origindata = Cells(i rowstart - 1, colstart) '读原始数据
'里斯本印花税尾数管理措施:过0.5进1,不足舍去,刚好为0.5及其倍数则不改变 If origindata * 100 Mod 50 <> 0 Then
money = Round(origindata, 0) '以0.5为界限作四舍五入
Else
money = origindata '整数及尾数刚好为0.5不作管理
End If
VBAProject.ThisWorkbook.Sheets(1).Activate '转到结果页
ActiveSheet.Cells(i 1 j, 1) = origindata '在第一列写入原始数据
Workbooks(filename).Activate ''转到要总计的原本数据数据文件
For k = 0 To 6 '循环总结各面额所需张数
While money >= moneytype(k)
money = money - moneytype(k)
billno = billno 1
Wend
VBAProject.ThisWorkbook.Sheets(1).Activate
ActiveSheet.Cells(i 1 j, k 2) = billno '在相应地点写入该面额张数
billno = 0 '清0计划总括下一面额
Workbooks(filename).Activate
Next k
rowbegain = rowbegain 1 '结果页中写结果的开场行下移一行
Next i
flagcal = flagcal 1 '总结次数累加
rowbegain = rowbegain 1 '增加一空行区分区别次数的结果
Application.ScreenUpdating = True '恢复生机显示屏刷新
VBAProject.ThisWorkbook.Sheets(1).Activate '张开结果页
End Sub
编 好后存盘,退出宏编辑器。初叶营造多个工具栏:[工具]—[自定义],点击[工具栏]---[新建],工具栏名称定为“印花税”,这时会现出 ,点击[命令],将 “命令”列表中私自Logo拖动到那么些工具栏中,在刚拖过来的Logo上点右键,选择[命名],将其改为“印花税面额总结”,采用[延续只用文字],那时会合世 ,在“印花税面额计算”上点三次右键,选取[指定宏],选择“ThisWorkbook.stamp_duty” ,点[确定]就能够。未来要计算时,只要选好原始数据,点击该工具栏就可以。
73、Sub AA()
Sheet1.Visible = 2 '深度隐藏
Sheet1.Visible = -1 ’显示
End Sub
74、 你在“workbook"的  Private Sub Workbook_BeforeClose(Cancel As Boolean)   中投入如下句子:myNowTime = Format(Now, "yymmdd" & "-" & "hhmmss")
        ActiveWorkbook.SaveAs Filename:=currPath & myNowTime & ".xls", AddToMru:=False
'(”currPath“ 为你的路子及文件名称)
诸如此类您保存文件能够年、月、日来达成。以至能够小时、分、秒来保存。对于在编制程序序的来说比较有用。假设您没有须求“时辰、分及秒”,可把前边的 [& "-" & "hhmmss")]撤除就能够。
75、大家经常上送、下发的报表质地、公告等都要加盖公章,假使把那项专门的学业交给Excel或Word来成功,大家的劳作就自在多了。
率先步:制作公章图案
首 先大家要做出一个公章的美术,最简便易行的法门是把公章图案扫描到计算机中,然后管理成透亮的GIF图像。大家也得以直接用Excel来制作:把绘图工具展开, 选中“椭圆”工具,在按下“Shift”键的同不常候拖开鼠标,就能够收获二个正圆了。双击这一个正圆张开“设置自行选购图形格式”对话框,在“颜色与线条”标签 中,填充颜色选“无填充颜色”,线条颜色设为大青,选3磅粗的单线形(图)。公章的文字用艺术字来塑造,填充颜色和线条颜色都用革命,并设成无阴影产。弧 形文字和水平文字要分离来做,在做弧形文字时,把措施字拖到圆形的上方,在艺术字工具中选“艺术字形状-细上弯弧”,按住黄铜色的正方块往下拉,再作适当的 调度,就能够做出公章里的圆弧形的文字了。公章中间还应该有多少个红五星,用“自行选购图形”的星形就能够做出来了,填充颜色和线条颜色用鲜蓝。最终,按住 “Shift”键把组成公章的文字、图形全体选上,实行右键菜单中的“组合”命令,一个公章就搞好了。
怎样把做好的公章保存出来?这里有一方法:把专门的学业表另存为Web页,然后到保存目录中找到*.files的文本夹,里面有叁个GIF图片,那便是刚刚做好的公章图案了,它的背景是透明的,大家把它改名字为gongzhang.gif保存下来就可以。
第二步:添加“盖章”按钮
接下去大家给Excel增多一个打印按键,当三个专业表做好后,点击那个打字与印刷按键,就能够为我们盖上公章了。
先 把公章图形复制出来(用来粘贴作为开关的图标),然后展开“工具-自定义”对话框,选中“命令”标签,在“种类”栏中找到“宏”,在左侧的“命令”栏里就能够油但是生一项“自定义开关”。用鼠标把那个笑脸Logo拖出到菜单栏或工具栏上放下,在一言一动图标上击右键,在弹出的菜单中把“命名”处的文字改为“加盖公章”。 接下来点击“粘贴开关Logo”这几个命令,就可以用刚和复制的公章图形来代替笑脸Logo了。把鼠标移下来选中“分配一流链接-插入图片”,然后在“请键入文件名 称或Web页名称”栏里输入公章图片gongzhang.gif的文件名及路线,然后按“鲜明”重临。
好了,看到“加盖公章”这些按键了吗,点击一向下探底望,呵呵,页面上就盖上贰个金棕的公章了,用鼠标可以把它拖到大肆的地点。在Word文书档案中打字与印刷公章的法子与此大同小异,大家能够本身试一试。
76、如何使某贰个牢固的菜单项无效
Application.CommandBars("File").Controls(6).Enabled = False
Controls(6)中的6正是所在菜单栏的行数
笔者以为那样恐怕更可信赖:
  Dim i As Integer
    For i = 1 To Application.CommandBars("File").Controls.Count
    If Application.CommandBars("File").Controls(i).Caption = "另存为(&A)..." Then
      Application.CommandBars("File").Controls(i).Enabled = False
     End If
Next i
77、请教我们,作者想在EXCEL文件退出时,另存为当前目录下的子目录BAK中,举例EXCEL文件在C盘,就另存为C:BAK子目录下,但EXCEL文件的职位不鲜明,不知怎么写语句?
只顾先引用"Microsoft Scripting Runtime"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' 在本文件要關閉前,執行備份動作。
    If Not ActiveWorkbook.Saved Then Exit Sub    ' 若最初的文章件未存檔,備份檔也不存。
    ThisPath = ThisWorkbook.Path
    ' 假定備份文件夾之名稱為"BAK",若本文件是備份檔,則不需再備份。
    If Len(Application.WorksheetFunction.Substitute(ThisPath, "BAK", "")) < Len(ThisPath) Then Exit Sub
    Bak = ThisPath & "" & "BAK"
    '檢查備份文件夾是或不是留存,若不设有,就创立一個。
    If Len(Dir(Bak, vbDirectory)) > 0 Then
        If (GetAttr(Bak) And vbDirectory) = vbDirectory Then GoTo 3     ' 若已存在,跳到下一步。
    End If
    MkDir Bak                   ' 创立備份文件夾。
    ' 改變近来路徑到備份文件夾路徑,並備份之。
3  ChDir Bak
    Application.Enable伊芙nts = False             ' 制止執行BeforeSave事件。
    Application.DisplayAlerts = False              ' 制止顯示是还是不是要覆蓋原備份文件之訊息。
    ActiveWorkbook.SaveAs
    ChDir ThisPath                                         ' 改變最近路徑回到原版的书文件夾路徑。
    Application.DisplayAlerts = True
    Application.EnableEvents = True
End Sub
上述程式有個漏洞,正是在本文件做過更動,且存檔過了,但最後二次的更動未存檔,則 If Not ActiveWorkbook.Saved Then Exit Sub 這個判斷會产生不存備份檔之錯誤決定。
若想彌補上述錯誤,將觸發的事件改成Workbook_BeforeSave,卻會形成Excel關閉的錯誤。
78、文件保留为以某一单元格中的值为文件名的宏怎么写
用命令: ActiveWorkbook.SaveCopyAs Str(Range("Sheet1!A1")) ".xls"
79、Offset 属性
参照他事他说加以考查应用于示例天性应用于 Range 对象的 Offset 属性。
回来三个 Range 对象,该指标表示有些钦命区域以外的区域。只读。
expression.Offset(RowOffset, ColumnOffset)
expression      必需。该表明式重返多少个 Range 对象。
RowOffset      Variant 类型,可选。区域偏移的行数(正值、负值或 0(零))。正值表示向下偏移,负值表示发展偏移,默许值为 0。
ColumnOffset      Variant 类型,可选。区域偏移的列数(正值、负值或 0(零))。正值表示向右偏移,负值表示向左偏移,私下认可值为 0。
应用于 TickLabels 对象的 Offset 属性。
回来或设置各品级标签之间的离开以及第顶尖标签与坐标轴之间的偏离。其默许距离为整个,代表坐标轴标签与坐标轴之间的暗中认可距离。其值可以为从 0 到 1000 之间的八个板寸比重,表示相对于坐标轴标签的字体大小。Long 类型,可读写。
expression.Offset
expression      必需。该表明式重回多个 TickLabels 对象。
示例
应用于 Range 对象。
本示例激活 Sheet1 上运动单元格向右偏移三列、向下偏移三行处的单元格。
Worksheets("Sheet1").Activate
ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate
本示例假定 Sheet1中含有一个有所标题行的报表。本示例先选定该表格,但并不选用标题行。运维本示例在此之前,活动单元格必须放在表格中。
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
    tbl.Columns.Count).Select
应用于 TickLabels 对象。
若果偏移量小于 500,则本示例将 Chart第11中学数值轴上标签之间的距离设置为当前偏离的两倍。
With Charts("Chart1").Axes(xlValue).TickLabels
    If .Offset < 500 then
        .Offset = .Offset * 2
    End If
End With
80、新建筑工程作簿
参照特性若要在 Visual Basic 中创建新的职业簿,请使用 Add 方法。下述进度创设了新的职业簿。Microsoft Excel 自动将该工作簿命名称为“BookN”,在那之中“N”是下一个可用的数字。新工作簿将变为移动专门的学业簿。
Sub AddOne()
    Workbooks.Add
End Sub
        成立新职业簿更好的主意是将其分配给贰个对象变量。下例中,由 Add 方法重临的 Workbook 对象分配给了对象变量 newBook。然后,又设置了 newBook 的多少脾性。使用对象变量能够很轻易地调控新专门的工作簿。
Sub AddNew()
Set NewBook = Workbooks.Add
    With NewBook
        .Title = "All Sales"
        .Subject = "Sales"
        .SaveAs Filename:="Allsales.xls"
    End With
End Sub

问题:excel怎么每隔5分钟采取八个数字?

 e、on error goto 0 '打消错误跳转

     End Sub

122、Private Sub Calendar1_Click()
ActiveCell = Me.Calendar1.Value
End Sub
123、设置日历控件字号
Private Sub UserForm_Initialize()
Me.Calendar1.GridFont.Size = 14
End Sub
124、以下是从金刚果金文章里提议来的部份事件代码,做得很好,值得借鉴学习:
Private Sub Workbook_Activate()
MsgBox "职业簿被切换为职能专门的事业簿", vbInformation, "Workbook_Activate"
End Sub
Private Sub Workbook_AddinInstall()
MsgBox "激活新的加载宏时", vbInformation, "Workbook_AddinInstall"
End Sub
Private Sub Workbook_AddinUninstall()
MsgBox "裁撤在此以前选拔的加载宏时", vbInformation, "Workbook_AddinUninstall"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "职业簿被关门以前", vbInformation, "Workbook_BeforeClose"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "专门的学问簿打字与印刷在此之前", vbInformation, "Workbook_BeforePrint"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "工作簿进行封存在此以前", vbInformation, "Workbook_BeforeSave"
End Sub
Private Sub Workbook_Deactivate()
MsgBox "专业簿切换为非功效职业簿", vbInformation, "Workbook_Deactivate"
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox "新建专门的工作表", vbInformation, "Workbook_NewSheet"
End Sub
Private Sub Workbook_Open()
MsgBox "展开专门的学问簿", vbInformation, "Workbook_Open"
End Sub
Private Sub Workbook_PivotTableCloseConnection(ByVal Target As PivotTable)
MsgBox "数据透视表关闭与其数据源的连接之后", vbInformation, "Workbook_PivotTableCloseConnection"
End Sub
Private Sub Workbook_PivotTableOpenConnection(ByVal Target As PivotTable)
MsgBox "数据透视表张开与其数据源的连年之后", vbInformation, "Workbook_PivotTableOpenConnection"
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "职业表" & Sh.Name & "切换为职能专业表", vbInformation, "Workbook_SheetActivate"
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "任一单元格双击鼠标之后", vbInformation, "Workbook_SheetBeforeDoubleClick"
End Sub
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "任一单元格单击鼠标右键之后", vbInformation, "Workbook_SheetBeforeRightClick"
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
MsgBox "工作表内容进行重算之后", vbInformation, "Workbook_SheetCalculate"
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "在做事表内举行不一致的操作", vbInformation, "Workbook_SheetChange"
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox "专门的职业表" & Sh.Name & "切换为非功用工作表", vbInformation, "Workbook_SheetDeactivate"
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Msg博克斯 "按下Excel超链接之后", vbInformation, "Workbook_SheetFollowHyperlink"
End Sub
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
MsgBox "数据透视表更新之后", vbInformation, "Workbook_SheetPivotTableUpdate"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "职业表里采取分裂单元格范围时", vbInformation, "Workbook_SheetSelectionChange"
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
MsgBox "职业簿切换为职能专门的工作簿", vbInformation, "Workbook_WindowActivate"
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Msg博克斯 "工作簿切换为非效率工作簿", vbInformation, "Workbook_WindowDeactivate"
End Sub
Private Sub Workbook_WindowResize(ByVal Wn As Window)
MsgBox "专门的学业簿被打开或窗口最大化、最小化之后", vbInformation, "Workbook_WindowResize"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "采取不相同单元格范围时", vbInformation, "Worksheet_SelectionChange"
End Sub
125、Rem 选定单元格的个数
Sub t()
MsgBox Selection.Cells.Count
End Sub
126、Application.OnKey "{F11}", "ccc"禁用F11
127、'选中A列除A1外的率先个非空单元格
[a65536].End(xlUp).Offset(1, 0).Select
128、Private Sub CommandButton1_Click()
On Error GoTo ad '注意后边的ad,那是错误管理的用法
i = Range("a1").Value
Sheets(CStr(i)).Select
ret = MsgBox("是还是不是覆盖", vbYesNo, "")
If ret = vbYes Then
Range("A5:C7").Copy Sheets(CStr(i)).Range("A1") '重点在copy之后
Else
Sheets.Add.Name = i & ".2"
Range("A5:C7").Copy Sheets(CStr(i & ".2")).Range("A1")
End If
End
ad:
Sheets.Add.Name = i '工作表名的变动是可知的
Range("A5:C7").Copy Sheets(CStr(i)).Range("A1")
End Sub
129、用变量代替Sheet1中的“1”
For i = 1 To 3
Sheets("sheet" & i).Range("A2") = "1234"
Next
130、中国和英国对照
English        繁體普通话        簡体汉语
Absolute Referencing        絕對參照        相对引用
Active Cell        現存儲存格        活动单元格
Add-in        增益集        加载宏
Address        位址        地址
Array        陣列        数组
Array Formula        陣列公式        数组公式
Audit        稽核        审核
Bold        粗體        粗体
Bug        蟲        Bug
Cell        儲存格        单元格
Circular Reference        循環參照        循环引用
Code        程式碼        代码
Column        欄        列
Command        指令        命令
Comment        註解        注释
Condition        條件        条件
Constant        常數        常数
Cursor        浮標        指针
Cursor        游標        鼠标指针
Data        數據/資料        数据
Data Type        資料型態        数据类型
Debug        偵錯        调试
Debug        除蟲        调试
Declare        宣告        声明
Dependent        從屬        从属
Dialog Box        對話方塊        对话框
Double        雙精度浮點數        双精度浮点数
Double-click (on mouse)        雙按        双击
Drag        拖曳        拖曳
Drop-down Box        清單方塊        ?
Edit        編緝        编辑
Electronic Mail / Email        電郵/電子郵件        电子邮件
Event        事件        事件
Execute        執行        执行
File        檔案        文件
Filter        篩選        筛选
Flowchart        流程圖        流程图
Footer        頁尾        页脚
Form        表單        窗体
Format        格式        格式
Function        函數        函数
General        一般        标准
Hard Copy        硬本        硬拷贝
Header        頁首        页眉
Help        說明        帮助
Hyperlink        超連結        拔尖链接
Immediate Window        即時運算視窗        立刻窗口
Indent        縮排        缩进
Insert        插入        插入
Internet        互聯網        因特网
Italic        斜體        斜体
Label        標籤        标签
Link        連結        链接
Loop        迴圈        循环
Macro        巨集        宏
Member        成員        成员
Method        方法        方法
Microsoft        微軟        微软
Module        模組        模块
Newsgroup        新聞組        新闻组
Number Format        數字格式        数字格式
Object        物件        对象
Object Browser        瀏覽物件        对象浏览器
Office Assistant        Office小幫手        Office助手
Options        選項        选项
Parameter        參數        参数
Parameter        引數        参数
Path        路徑(檔案的)        路径
Precedent        前導        先例
Program        程式        程序
Program/Subroutine        程序        过程
Project        專案        工程
Property        屬性        属性
Query        查詢        查询
Range        範圍        范围
Relative Referencing        相對參照        相对引用
Right-click (on mouse)        右按        右击
Row        列        行
Scatter Chart        XY散佈圖        XY散点图
Scroll Bar        捲軸        滚动条
Select        選取        选择
Single        單精度浮點數        单精度浮点数
Single-click (on mouse)        單按        单击
斯马特 Tag        智慧標籤        智能标识
Soft Copy        軟本        软拷贝
Sort        排序        排序
Spinner        微調按鈕        微调按键
Statement        陳述式        表达式
Strikethrough Line        刪除線        删除线
String        字串        字符串
Subscript        下標        上标
Superscript        上標        下标
Tab        索引標籤        Tab
Template        範本        模板
Text        文字        文本
Toolbar        工作列        工具栏
Tools        工具        工具
Transpose        轉置        转置
Trendline        趨勢線        趋势线
Underline        底線        下划线
Validation        驗證        确认
Variable        變數        变量
View        檢視        视图
Visual Basic Editor        Visual Basic 編輯器        Visual Basic 编辑器
Watch        監看式        监视
魏尔德cards(*或?)        萬用字元        通配符
Window        視窗        窗口
Wizard        精靈        向导
Workbook        活頁簿        工作簿
Worksheet        工作表        工作表

   

         If Range("a3") < "G" Then

         

   Sub t5()

                                                                                                                                        

A、用VBA在单元格中输入常见公式

12.循环语句

      Range("d3") = Range("b3") * Range("c3")   ’将b3单元格与c3单元格相乘并赋值给d3单元格

                                                                                                                                    

         '设置断点

   Sub W3()

     cells 全部单元格

         '设置断点

 

     所谓变量,正是可变的量。就好象在内部存款和储蓄器中有的时候存放的二个小盒子,那一个小盒子放的什么物体不定点。

     (3)单精度实型(Single):

       Range("d2") = "=b2*c2"   ’将b2乘以c2赋值给d2

      x = x 1

         MsgBox "A工作表不存在"

       Sub s10()

    Sub 判定2() '多规格判定

        Sub s2()

           For J = 4 To 930

     Workbooks ("事业簿名称")

         Sheets("Sheet2").Move before:=Sheets("sheet1") 'sheet2移动到sheet1前面

 Case Is > 3000

        Sub t5()

       Cells(x, 3) = Cells(x, 2) * Cells(x, 1)

        Workbooks("A.xls").Sheets(1).Range("a1") = 100

     Sub 剖断1() '单条件判别

    Sub W2()

            Sheets("模板").Copy

   Sub t5()

     Cells(x, 1) = "偶数"

     wb.SaveAs "D:/B.xls"

           Set sh = ActiveSheet

   A、什么是变量?

            For x = 1 To 100

            Sheets("模板").Copy

         Exit Do

     Selection 正被选中或选拔的单元格或单元格区域

        End If

        k = k Cells(x, 1)

B、代码窗口

         Cells(x, 2) = "断点"

9.VBA方法

    Loop

range("a1")=10

  B.For each 循环语句

         Case Is > 0

c、on error resume next '蒙受错误,跳过继续推行下一句

         End Sub

       End Sub

      Kill "D:/ABC.XLS"

                                                                              

    b 窗体

       MsgBox "A文件存在"

    End Sub

 Case 0 To 1000

     Option Explicit

    End Sub

     Set wb = Workbooks.Add

      FileCopy "D:/ABC.XLS", "E:/ABCd.XLS"

                                                                                

            Set wb = ActiveWorkbook

      x = x 1

   2 模块级变量:变量的值只在本模块中维系,工作簿关闭时随时释放   

             Msg博克斯 "工作簿爱慕了"

D.循环语句。

      Dim wb As Workbook

b、gosub..return ,跳过去,再跳回来

    Sub ttt1()

           If Sheets(X).Name = "A" Then

     ActiveSheet 表示活动职业表,光标所在工作表

      excel文件正是excel专门的工作簿,excel文件张开须求excel程的支撑

    End Sub

       Sub s10()

     Cells(行数,列数)    Range(“B3”)和Cells(3,2)表示一点差别也没有的单元格

   Exit Sub

      Dim rg As Range

     Sub t7()

    4、 放数组

       If Cells(x, 1) Mod 2 = 0 Then GoSub 100

   Sub t4()

                                                                                                                                           

      Function wn()

    wb.Close False

    End Sub

             Cells(1, 1) = x

  ElseIf Range("a2") > 3000 Then

   End Sub

      End If

     Next x

             If x = 5 Then

    Next x

    End Sub

     Sub t1()

    Dim x As Integer

    c 代码强制转行的装置

   ’判别第1列中的数据不一连,就在现在的单元格输入一个“断点”。

         End Sub

           比如:长整型的书写:    23454444554     

      End Select

    MsgBox wb.Sheets("sheet1").Range("a1").Value

                                                                                                                                           

 E、变量的放走

   

     End Sub

 E.通过插入窗体做Mini管理软件。

     Else

    For x = 1 To 10

   Dim x As Integer

        End Sub

     Sub t1()

             End If

        st = st & "Excel精英培养和训练"

    Next x

     Selection 正被选中或采用的单元格或单元格区域

      Sheets("A"),名称为A的excel工作表

       End Sub

D、利用单元格公式再次来到值

 

     End Sub

 E.通过插入窗体做Mini管理软件。

     Dim x As Integer, k As Integer

     End If

         Sub t7()

Option Explicit

   ’注:offset正是偏移,针对d2来说,Offset(0, -1)指的正是向左移动1个单元格,即c2;而Offset(0, -2)指的正是向左移动2个单元格,即b2;第一个参数是垂直运动,正为发展,负为向下;第二个参数是水平位移,正为向右,负为向左。

        Sub t1()

            x = x 1

   1 变量的品种

      Sub ttt3()

         Exit Sub

   B、小盒子里能够放怎么?

     (5)字符型(String)

         Sheets("Sheet1").Move after:=Sheets(Sheets.Count) 'sheet1移动到具有专门的学业表的最后边

        Dim sr

        Dim x As Integer

    VBA属性正是VBA对象所负有的表征,表示某些对象的性质如下:对象.属性=属性值

    x = 1

13. 上学变量

     B、 excel职业表的插入

          MsgBox m

          Dim arr(1 To 10) As Integer, X As Integer  

       For X = 1 To 10

           rg = 0

6.VBA语句

          Windows("A.xls").Visible = False

   Sub t5()

                                                               图4 代码存放在“模块”中

    a 注释文字的装置

               If Sheets("Sheet4").Range("b" & I).Value = Sheets("黄门乡").Range("b" & J).Value Then   

       Range("d2") = "=b2*c2"   ’将b2乘以c2赋值给d2

         Case Else

   B、职业簿窗口

        100:

                                                                                                                                    

          m = 7

     Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '境遇单引号就把单引号加倍

       End Sub

 C、立即窗口

   ’决断第1列中的数据不总是,就在随后的单元格输入叁个“断点”。

   End Sub

      Next x

       Sub s9()

         Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)")

      For x = 1 To 10

     End Sub

 Case 0 To 1000

D、变量的水保周期

     Sheets("工作表名称")

      a、Exit Sub语句

        k = k Cells(x, 1)

      Range("d4") = Range("b4") * Range("c4")   ’将b4单元格与c4单元格相乘并赋值给d4单元格

 End Select

         End Sub

     ActiveWorkbook ,当展开四个excel职业簿时,你正在操作的百般正是ActiveWorkbook(活动专门的学业簿)

   H、职业表删除

                                                                                                                               

             MsgBox "工作簿未有增多入保障护"

         End Sub

     图片 4

   

        End If

         Sheets(2).Visible = True

                                                                                

              Range("b1") = 100

            m = 1

    Next x

     Else

7.VBA对象

     Sub W1()

    Sub 推断2() '多规格判定

           Dim wb As Workbook

      On Error Resume Next

    Do While x < 18

        Function ff()

   Sub t2()

     End Sub

B、用VBA在单元格输入带引号的公式

       Cells(x, 3) = Cells(x, 2) * Cells(x, 1)

   Sub t3()

      Cells(x, 4) = Cells(x, 2) * Cells(x, 3)

   End Sub

       Windows("A.xls"),A职业簿的窗口,使用windows能够安装专门的学问簿窗口的情况,如是不是隐身等。

   Sub t5()

             Cells(1, 1) = x

     d、Exit do 语句

     (2)长整型(Long):

   ’注:Cell(行,列),即上文中的x指的是行。将第二列和第三列相乘赋值给第四列。

     3、 放对象

           MsgBox qq

   End Sub

      End Sub

           有效数为7位 表示-3.37E 38至3.37E 38里头的实数

         Cells(X, 1) = X

             For x = 1 To 100

        Sheets("A").Range("a1") = 100

  B.“宏”——选中“输入100”——“执行”。

 End Select

19、职业表的定义

     变量通过索引可以积存越来越多的值,在循环结构中的功效大。

     End Sub

        图片 5

 A.实现Excel中并未有完结的职能。

       End Sub

        End Sub

           Set sh = ActiveSheet

D.循环语句。

              sh.Name = "1日"

               wb.Sheets(1).Range("b1") = "测试"

      Range("C20") = VBA.InStr(Range("a20"), "E")

    Sub d()

           sh.Name = "模板"

            Set wb = ActiveWorkbook

                                                          图6  选中test并“运行”

           Dim wb As Workbook

               Exit Do

       End If

   3 证明变量

      Next

  图片 6

      Cells(x, 4) = Cells(x, 2) * Cells(x, 3)

     Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '蒙受单引号就把单引号加倍

  A.“开拓工具”——“Visual Basic”——“视图”——“工程资源管理器”——“插入”——“模块”——在左边手输入代码:

      Dim x As Integer

                                                           

Sub select区间推断()

         Dim x As Integer

      End If

        Next X

           Range("b1") = "负数"

 Select Case Range("a2").Value

          Loop Until x = 100

      For I = 3 To 225

       Cells(x, 4) = "=b" & x & "*c" & x     ’将b列乘以c列赋值给d列

   Dim rg As Range

     a、Goto语句,跳转到钦点的地点

 D、本地窗口

    Dim wb As Workbook

    For x = 10000 To 2 Step -3

    Next rg

           Application.DisplayAlerts = False

      Dim wb As Workbook

         Sub e2()

5.编辑一个宏。

        100:

       End Sub

      ’Range("A1").Copy Destination:= Range("A2")

6.VBA语句

F、利用VBA函数

        Sub e3()

登时窗口能够把运营进程中的值马上彰显出来,首要用来程序的调解

G、编写自定义函数

   2 怎么要申明变量

   Sub t2()

            arr(X) = X

 E、变量的放飞

       Else

     Set wb = Workbooks.Add

               End If

     Next x

   VBA方法是效果于VBA对象上的动作,表示用有个别方法效果于VBA的靶子上,能够用上面包车型地铁格式:

       Sub t4()

         Range("b1") = "负数或0"

        If Len(sr) = 0 Or Len(sr) = 5 Then GoTo 100

   ’注:Cell(行,列),即上文中的x指的是行。将第二列和第三列相乘赋值给第四列。

    

       If Cells(x, 1) Mod 2 = 0 Then GoSub 100

Option Explicit

               If Sheets("Sheet4").Range("b" & I).Value = Sheets("黄门乡").Range("b" & J).Value Then   

              Range("b1") = 100

   3 全局级变量: 在具有的模块中都能够调用,值会保存到EXCEL关闭时才会被假释。

        Dim sr

E、 excel文件保留和备份

    End Sub

    c 代码强制转行的设置

    a 出示工作簿专门的学问表对象

 

    Return    '跳到gosub 100 这一句

          sh.Range("a1") = 100

         Range("b1") = "正数"

    b 代码缩进的安装

F、利用VBA函数

    End Sub

    Sub 判别1() '单条件决断

      For x = 1 To 10

本文由乐百家软件发布,转载请注明来源:VBA续嘘嘘——宏技术集绵