图片 8

问题:Excel如何在一列中突显出办事薄中全数专业表的称号?

 

VBA学习笔记

回答:

怎样是VBA?它有哪些遵循?

笔记摘抄自EXCEL精英培养练习-石青幻想

在一列中展示职业薄的凡职业表的名号,不选取VBA的施工方案下如:

 A.完结Excel中并未有实现的功用。

VBA学习笔记01(链接)
VBA学习笔记02 (链接)

第一步,选创建名称变量,如下图,先点击按键,在弹出的对话框中输入名称变量“A”,引用地方处输入公式“=get.workbook(1)”.

 B.提高运维速度。

目录

图片 1

 C.编写自定义函数。

CH1 VBA基础知识

其次步,设置公式 ,在干活表B第11中学装置公式
“=INDEX(A,ROW(A1))”,鼠标移至B1单元格右下角,待光标产生北京蓝十字光标后,按住鼠标左键向下拖动复制公式,最后效果如下:

 D.达成自动化效能。

CH2 VBA函数与公式

图片 2

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

CH3 VBE编辑器

回答:

VBA在哪个地方存放的?怎么运维?

CH4 分支与END语句

以此主题材料能够简化为:

 A.模块中

CH5 文件操作

<br />


<br />

获取三个职业簿里面有着的sheet_name?

   在Excel 20第10中学若未有“开采工具”项,通过“文件”——“选项”——“自定义成效区”——选中“开拓工具”——“分明”(图1)。

CH1 VBA基础知识

(1)日常遇到要求猎取sheet_name的意况是:

(注:为了提升word20第10中学插入的图纸的质量,“文件”——“选项”——“高等”——选中“不压缩文件图像质量”——“鲜明”。)

一、VBA对象:

VBA中的对象实际就是大家操作的有着艺术、属性的excel中支持的目的
Excel中的多少个常用对象表示方法

一齐首并未有很好的简化式命名sheet_name,sheet_name中尚无统大器晚成的格式,还应该有空格等这种气象。

 

1、工作簿

 Workbooks 代表工作簿集合,所有的工作簿,Workbooks(N),表示已打开的第N个工作簿
 Workbooks ("工作簿名称")
 ActiveWorkbook 正在操作的工作簿
 ThisWorkBook 代码所在的工作簿      

并未有客观接受专门的学问簿,有个别只是为了“方便”,一个专门的学业簿建了四十几个以上的sheet,其实这种分类做法实在给您的效用促销扣的!

图1 选中“文件”—“选项”

2、工作表

Sheets(“专门的学问表名称”)
Sheet1 表示第一个插入的专业表,Sheet2代表第4个插入的做事表….
Sheets(n) 表示按排列顺序,第n个职业表
ActiveSheet 表示活动专门的学问表,光标所在工作表
worksheet 也象征职业表,但不包蕴图形工作表、宏职业表等。

难度指数:♢

图2 ”自定义功用区”—“开拓工具”——“分明”

3、单元格

   cells 所有单元格
   Range ("单元格地址")
   Cells(行数,列数)
   Activecell 正在选中或编辑的单元格
   Selection 正被选中或选取的单元格或单元格区域

在不敢问津sheet个数的景况首要推荐VBA:

 

二、VBA方法和属性

新建一个表,新建宏,输入上面代码:

图3 最后的界面多出了“开垦工具”选项卡

1.VBA属性:VBA属性就是VBA对象所全数的表征。表示有个别对象的个性的法子是。

    对象.属性=属性值        
  Sub ttt()
       Range("a1").Value = 100
 End Sub

Sub a()

 

2.VBA方法

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

  Sub ttt4()  
     牛排.做 熟的程度:=七成熟     
    Range("A1").Copy Range("A2")
 End Sub

For Each sh In Sheets

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

三、VBA语句

k = k + 1

B.运行宏

1.宏前后相继语句:运转后可以做到多少个功力

Sub test()  开始语句

  Range("a1") = 100

End Sub   结束语句

Cells(k, 1) = sh.Name

单击向右的绿三角,即能够运转。

2.函数程序语句:运行后能够回来一个值

Function shcount()

shcount = Sheets.Count

End Function

Next

 

3.在前后相继中接受的言语

 Sub test2()

    Call test

  End Sub

 Sub test3()

   For x = 1 To 100   for next 循环语句
      Cells(x, 1) = x
   Next x

 End Sub

End Sub

   

4.确定语句

(1)IF剖断语句

     Sub 判断()        单条件判断
        If Range("a1").Value > 0 Then
           Range("b1") = "正数"
       Else
           Range("b1") = "负数或0"
      End If
    End Sub

Sub 判断2() 多条件判断
   If Range("a1").Value > 0 Then
      Range("b1") = "正数"
   ElseIf Range("a1") = 0 Then
      Range("b1") = "等于0"
   ElseIf Range("B1") <= 0 Then
      Range("b1") = "负数"
   End If
End Sub

Sub 多条件判断2()
  If Range("a1") <> "" And Range("a2") <> "" Then
     Range("a3") = Range("a1") * Range("a2")
  End If
 End Sub

(2)IFF函数判别

Sub 判断4()
   Range("a3") = IIf(Range("a1") <= 0, "负数或零", "负数")
End Sub

(3)select判断

Sub 判断1() 单条件判断
  Select Case Range("a1").Value
 Case Is > 0
   Range("b1") = "正数"
Case Else
 Range("b1") = "负数或0"
End Select
End Sub

    Sub 判断2() 多条件判断
       Select Case Range("a1").Value
        Case Is > 0
               Range("b1") = "正数"
      Case Is = 0
             Range("b1") = "0"
      Case Else
             Range("b1") = "负数"
    End Select
  End Sub

    Sub 判断3()
       If Range("a3") < "G" Then
             MsgBox "A-G"
       End If
    End Sub

(4)判别范围

    Sub if 区间判断()
        If Range("a2") <= 1000 Then
            Range("b2") = 0.01
        ElseIf Range("a2") <= 3000 Then
            Range("b2") = 0.03
        ElseIf Range("a2") > 3000 Then
          Range("b2") = 0.05
        End If
    End Sub

    Sub select区间判断()
       Select Case Range("a2").Value
       Case 0 To 1000
             Range("b2") = 0.01
       Case 1001 To 3000
           Range("b2") = 0.03
       Case Is > 3000
           Range("b2") = 0.05
       End Select
    End Sub

—>运行

                                                   图5 右绿三角运维  

5.循环语句

(1)

    Sub t1()
      Range("d2") = Range("b2") * Range("c2")
      Range("d3") = Range("b3") * Range("c3")
      Range("d4") = Range("b4") * Range("c4")
      Range("d5") = Range("b5") * Range("c5")
      Range("d6") = Range("b6") * Range("c6")
    End Sub

(2)FOHaval <循环变量>=<初值>to<终值> [step 步长]
<循环体>
[EXIT FOR]
<循环体>
NEXT [循环变量]

  Sub t2()
      Dim x As Integer
       For x = 10000 To 2 Step -3
            Range("d" & x) = Range("b" & x) * Range("c" & x)
       Next x
  End Sub

(3)

   Sub t3()
        Dim rg As Range
       For Each rg In Range("d2:d18")
              rg = rg.Offset(0, -1) * rg.Offset(0, -2)
       Next rg
  End Sub

(4) do[ while 逻辑表达式]
<循环体>
[EXIT DO]
<循环体>
loop [while 逻辑表达式]

    Sub t4()
          Dim x As Integer
               x = 1
         Do
             x = x + 1
             Cells(x, 4) = Cells(x, 2) * Cells(x, 3)
         Loop Until x = 18
    End Sub

(5)

    Sub t5()
           x = 1
           Do While x < 18
                 x = x + 1
                 Cells(x, 4) = Cells(x, 2) * Cells(x, 3)
           Loop
    End Sub

『看完有获取点个赞吧- -』

                                                          图6  选中test并“运行”

6.变量

(1)什么是变量?
所谓变量,就是可变的量。就好象在内存中不时贮存的二个小盒子,这些小盒子放的什么样物体不定点。

  Sub t1()
        Dim X As Integer x就是一个变量
        For X = 1 To 10
                Cells(X, 1) = X
        Next X
  End Sub

(2)变量的等级次序和注解

A.变量的体系

byte 字符型(0-255)
integer 整数型(-32768-32767)
long 长整数型
single 单精度浮点型
double 双精度浮点型
currency 货币型
decimal 小数型
string 字符串型 (数字 文本)
date 日期型
boolean 布尔型 (逻辑判别)
variant 万能型

B.申明变量

  dim 变量名 as 数据类型

  dim str as string

C.如给文本、数值、日期等数据型变量赋值
let 变量名称 =数据
如给目的变量(object型,如单元格)赋值
set 变量名称=对象
e.g

    set rng=worksheets("sheet1").range("a1")
    rng.value="欢迎"

接受常量
const 变量名称 as 数据类型-数值

   const p as single =3.14

(3)变量的水保周期

1 进度级变量:进度甘休,变量值释放

   如t1

2 模块级变量:变量的值只在本模块中保险,专门的职业簿关闭时任何时候释放
例5

     Sub t6()
        m = 1
     End Sub
     Sub t5()
      MsgBox m
      m = 7
     End Sub

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

   public 变量

     Sub t7()
       MsgBox qq
     End Sub

(4)变量的释放

诚如意况下,进程级变量在进度运转甘休后就能够自行从内部存储器中放出,而只有风流倜傥对从表面借用的对象变量才必要使用set
变量=nothing进行自由。
<br />


<br />

图片 3回答:

 

CH2 VBA函数与公式

1、宏表函数

                                                    图7 运维结果

风度翩翩、在单元格中输入公式

2、使用VBA,都足以的

3.怎么样是宏?宏和VBA有怎样关系?

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

 Sub t1()
   Range("d2") = "=b2*c2"
 End Sub

 Sub t2()
  Dim x As Integer
  For x = 2 To 6
   Cells(x, 4) = "=b" & x & "*c" & x
  Next x
 End Sub

回答:

 宏(Macro),是意气风发种批量甩卖。

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

 Sub t3()

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

 End Sub

能够应用链接功效,做成目录,查找也是有益,再在每张表中设再次来到键直接回到目录。

 宏平时不仅可以够录像又有什么不可手动编制程序,而VBA经常是因此编制程序完毕。宏能够和VBA相结合使用。

3、用VBA在单元格中输入数组公式

Sub t4()
  Range("c9").FormulaArray = "=SUM(B2:B6*C2:C6)"
End Sub

回答:

4.摄像贰个宏。

二、利用单元格公式重返值

 Sub t5()
     Range("d16") = Evaluate("=SUMIF(A2:A6,""b"",B2:B6)")
     Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)")
 End Sub

一定于建个目录索引,函数和代码都足以的

  A.“开采工具”——“摄像宏”——宏名称为“输入100”——“录像”——在A1单元格中输入100——“甘休”。

三、借用专门的职业表函数

 Sub t6()

    Range("d8") = Application.WorksheeFunction.CountIf(Range("A1:A10"), "B")

 End Sub

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

四、利用VBA函数

 Sub t7()

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

 End Sub    

  

五、编写自定义函数

  Function wn()
     wn = Application.Caller.Parent.Name
  End Function

<br />


<br />

5.编纂多少个宏。

CH3 VBE编辑器

  • 1.声明文字 :文字前加单引号
  • 2.恐吓转行 空格+下划线
  • 3.调治工具栏: 逐语句运维或按F8
  • 4.装置断点:STOP
  • 5.立刻窗口: debug.print “第“&X&”运转结果“ 展现某步程序运转结果
  • 6.地面窗口:显示运维中断时对象新闻
    <br />

<br />

  A.“开辟工具”——“Visual Basic”——“视图”——“工程能源管理器”——“插入”——“模块”——在右侧输入代码:

CH4 分支与END语句

   图片 4

一、END语句

成效:强制退出全体正在运转的次第。

  B. 单击绿右三角就可以运维。可能关闭VBA编辑窗口,单击“宏”——选中“test”——“实践”。

二、Exit语句

分离钦定的话语

1、Exit Sub

 Sub e1()
 Dim x As Integer
    For x = 1 To 100
      Cells(1, 1) = x
      If x = 5 Then
        Exit Sub
      End If
     Next x
  Range("b1") = 100
 End Sub

2、Exit function

 Function ff()
 Dim x As Integer
    For x = 1 To 100
      If x = 5 Then
        Exit Function
      End If
     Next x
  ff = 100
 End Function

3、Exit for

Sub e2()     
 Dim x As Integer
    For x = 1 To 100
      Cells(1, 1) = x
      If x = 5 Then
        Exit For
      End If
     Next x

   Range("b1") = 100
 End Sub

4、Exit do

 Sub e3()
 Dim x As Integer
   Do
     x = x + 1
      Cells(1, 1) = x
      If x = 5 Then
        Exit Do
      End If
   Loop Until x = 100
   Range("b1") = 100
 End Sub

 

三、分支语句

1.Goto语句,跳转到钦命之处

 Sub t1()
      Dim x As Integer
      Dim sr
      100:
            sr = Application.InputBox("请输入数字", "输入提示")
     If Len(sr) = 0 Or Len(sr) = 5 Then GoTo 100
  End Sub

2.gosub..return ,跳过去,再跳回来

Sub t2()
      Dim x As Integer
      For x = 1 To 10
             If Cells(x, 1) Mod 2 = 0 Then GoSub 100
      Next x
 Exit Sub
 100:
         Cells(x, 1) = "偶数"
     Return
End Sub

3.on error resume next 遇见错误,跳过继续实践下一句

 Sub t3()
  On Error Resume Next
  Dim x As Integer
    For x = 1 To 10
      Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
  Next x
 End Sub

4.on error goto 弄错开上下班时间跳到钦命的行数

Sub t4()
    On Error GoTo 100
    Dim x As Integer
    For x = 1 To 10
        Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
    Next x
 Exit Sub
 100:
         MsgBox "在第" & x & "行出错了"
End Sub

5.on error goto 0 撤除错误跳转

    Sub t5()
            On Error Resume Next
            Dim x As Integer
            For x = 1 To 10
            If x > 5 Then On Error GoTo 0
                Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
          Next x
     Exit Sub

<br />


<br />

6.VBA语句

CH5 文件操作

  A.宏程序语句。

后生可畏、常用概念

1.excel文书和专门的学问簿

excel文件正是excel工作簿,excel文件展开供给excel程的支撑

(1) Workbooks 职业簿集结,泛指excel文件或专门的学业簿

Workbooks(“A.xls”),名称为A的excel工作簿

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

workbooks(2),按展开种种,第3个展开的职业簿。

  Sub t2()
    Workbooks(2).Sheets(2).Range("a1") = 200
 End Sub

(2)ActiveWorkbook
,当张开多个excel工作簿时,你正在操作的那么些正是ActiveWorkbook(活动专业簿)

(3)Thisworkbook,VBA程序所在的专门的学业簿,无论你张开多少个专门的职业簿,不论当前是哪些工作簿是活动的,thisworkbook正是指它所在的专门的工作簿。

2.专门的职业簿窗口

Windows("A.xls"),A工作簿的窗口,使用windows可以设置工作簿窗口的状态,如是否隐藏等。
 Sub t3()
    Windows("A.xls").Visible = False
 End Sub
 Sub t4()
    Windows(2).Visible = True
 End Sub

3.excel专门的学业表的分类

excel职业表有两大类,后生可畏类是我们平常用的工作表(worksheet),另黄金时代类是图形、宏表等。这两类的统称是sheets

sheets 职业表群集,泛指excel各类专门的学业表

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

 Sub t1()
    Sheets("A").Range("a1") = 100
 End Sub

workbooks(2),按展开各类,第一个展开的职业簿。

  Sub t2()
    Sheets(2).Range("a1") = 200
 End Sub

ActiveSheet ,当打开三个excel工作簿时,你正在操作的足够便是ActiveSheet

   图片 5

二、 EXCEL文件操作

1 剖断A.Xls文件是不是存在

Sub W1()
 If Len(Dir("d:/A.xls")) = 0 Then
   MsgBox "A文件不存在"
 Else
   MsgBox "A文件存在"
 End If
 End Sub

2 推断A.Xls文件是还是不是张开

Sub W2()
 Dim X As Integer
  For X = 1 To Windows.Count
    If Windows(X).Caption = "A.XLS" Then
      MsgBox "A文件打开了"
      Exit Sub
    End If
  Next
End Sub

3 excel文书新建和封存

Sub W3()
 Dim wb As Workbook
 Set wb = Workbooks.Add
   wb.Sheets("sheet1").Range("a1") = "abcd"
 wb.SaveAs "D:/B.xls"
End Sub

4 excel文件张开和停业

 Sub w4()
        Dim wb As Workbook
              Set wb = Workbooks.Open("D:/B.xls")
              MsgBox wb.Sheets("sheet1").Range("a1").Value
        wb.Close False
 End Sub

5 excel文件保留和备份

 Sub w5()
      Dim wb As Workbook
       Set wb = ThisWorkbook
        wb.Save
        wb.SaveCopyAs "D:/ABC.xls"
 End Sub

6 excel文书复制和删除

 Sub W6()
  FileCopy "D:/ABC.XLS", "E:/ABCd.XLS"
  Kill "D:/ABC.XLS"
 End Sub

7.推断A职业表文件是还是不是留存

Sub s1()
 Dim X As Integer
  For X = 1 To Sheets.Count
    If Sheets(X).Name = "A" Then
      MsgBox "A工作表存在"
      Exit Sub
    End If
  Next
  MsgBox "A工作表不存在"
End Sub
  1. excel工作表的插入

     Sub s2()
        Dim sh As Worksheet
        Set sh = Sheets.Add
        sh.Name = "模板"
        sh.Range("a1") = 100
     End Sub
    

9.excel工作表隐蔽和撤销隐藏

 Sub s3()
          Sheets(2).Visible = True
 End Sub

10.excel职业表的位移

 Sub s4()
             Sheets("Sheet2").Move before:=Sheets("sheet1")        ‘sheet2移动到sheet1前面
            Sheets("Sheet1").Move after:=Sheets(Sheets.Count)      ’ sheet1移动到所有工作表的最后面
 End Sub

11.excel职业表的复制

 Sub s5() 在本工作簿中
      Dim sh As Worksheet
        Sheets("模板").Copy before:=Sheets(1)
        Set sh = ActiveSheet
        sh.Name = "1日"
        sh.Range("a1") = "测试"
 End Sub

Sub s6() 另存为新专门的学业簿

  Dim wb As Workbook
   Sheets("模板").Copy
   Set wb = ActiveWorkbook
      wb.SaveAs ThisWorkbook.Path & "/1日.xls"
      wb.Sheets(1).Range("b1") = "测试"
      wb.Close True
   End Sub

12.爱抚职业表

 Sub s7()
        Sheets("sheet2").Protect "123"
 End Sub
 Sub s8() 判断工作表是否添加了保护密码
  If Sheets("sheet2").ProtectContents = True Then
    MsgBox "工作簿保护了"
  Else
    MsgBox "工作簿没有添加保护"
  End If
 End Sub

13.职业表删除

 Sub s9()
   Application.DisplayAlerts = False
     Sheets("模板").Delete
   Application.DisplayAlerts = True
 End Sub

14.专门的学业表的选项

 Sub s10()
   Sheets("sheet2").Select
 End Sub

  B.函数程序语句

  图片 6

 C.在前后相继中应运语句。

  图片 7

D.循环语句。

  图片 8

7.VBA对象

  A.工作簿对象

     Workbooks
代表专门的学业簿集结,所有职业簿,Workbooks(N),表示已展开的第N个职业簿

     Workbooks (“工作簿名称”)

     ActiveWorkbook 正在操作的专业簿

     ThisWorkBook ‘代码所在的事业簿

  B.职业表对象

     Sheets(“工作表名称”)

     Sheet1 表示第八个插入的职业表,Sheet2象征第贰个插入的干活表….

     Sheets(n) 表示按排列顺序,第n个职业表

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

     worksheet 也意味职业表,但不满含图形职业表、宏专门的学业表等。

  C.单元格对象

     cells 全数单元格

     Range (“单元格地址”)

     Cells(行数,列数)    Range(“B3”)和Cells(3,2)表示风度翩翩致的单元格

     Activecell 正在选中或编辑的单元格

     Selection 正被入选或选取的单元格或单元格区域

8. VBA属性

    VBA属性正是VBA对象所持有的特色,表示有个别对象的习性如下:对象.属性=属性值

    Sub ttt()

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

    End Sub

                                                       
                                                                  
         

    Sub ttt1()

      Sheets(1).Name = “专门的学问表改名了”   ’给办事簿重命名叫“专业表改名了”

    End Sub

                                                
                                                                      
               

    Sub ttt2()

       Sheets(“Sheet2”).Range(“a1”).Value =
“abcd”   ’给sheet2工作表的a1单元格填充字符串“abcd”

    End Sub

                                           
                                                           
                                

      Sub ttt3()

     ’单元格的中间的填充色

          Range(“A2”).Interior.ColorIndex = 3  ’将A2单元格的背景颜色设置为浅莲红

         Range(“A2”).Font.ColorIndex =
3      ’将A2单元格的字体颜色设置为革命

      End Sub

   
                                                                                                                                       

9.VBA方法

   VBA方法是职能于VBA对象上的动作,表示用某些方法效果于VBA的对象上,能够用上边的格式:

   对象.方法  参数名称:=参数值

                                                                                                                                            

  Sub ttt4()

      ’Range(“A1”).Copy Destination:= Range(“A2”)

      Range(“A1”).Copy Range(“A2”)   ’将A第11中学的内容复制到A2

  End Sub

                                                                                                                                            

  Sub ttt5()

    Sheet1.Move before:=Sheets(“Sheet3”)   ’将sheet1表移动到sheet3事先

  End Sub

                                                                                                                                           

10.在八个乡政坛的文书中须求将Excel中一个表格的居民身份证号,配对并填充到另四个表中。宏代码如下:

     Sub 配对()

      Dim I, J As Integer

      For I = 3 To 225

           For J = 4 To 930

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

                     Sheets(“Sheet4”).Range(“e” & I).Value =
Sheets(“黄门乡”).Range(“d” & J).Value

              End If

         Next J

       Next I

     End Sub

     ’竟然没写入End IF,提示错误“Next 贫乏 For”

11.决断语句

   A.if判定语句

                                                                                                                           

     Sub 判定1() ‘单条件判别

       If Range(“a1”).Value > 0 Then

            Range(“b1”) = “正数”

       Else

            Range(“b1”) = “负数或0”

       End If

     End Sub

  B.IIF剖断语句

                                                                                                                            

    Sub 判断4()

        Range(“a3”) = IIf(Range(“a1”) <= 0, “负数或零”, “负数”)

    End Sub

  C.select判断

                                                                                                                             

    Sub 决断1() ‘单条件剖断

      Select Case Range(“a1”).Value

      Case Is > 0

         Range(“b1”) = “正数”

      Case Else

         Range(“b1”) = “负数或0”

      End Select

    End Sub

                                                                                                                               

    Sub 决断2() ‘多规格判定

        Select Case Range(“a1”).Value

         Case Is > 0

           Range(“b1”) = “正数”

         Case Is = 0

           Range(“b1”) = “0”

         Case Else

           Range(“b1”) = “负数”

         End Select

       End Sub

                                                                                                                                                     

      Sub 判断3()

         If Range(“a3”) < “G” Then

            MsgBox “A-G”

         End If

      End Sub

D.区间判定

                                                                                                                                     

  Sub if区间剖断()

  If Range(“a2”) <= 1000 Then

    Range(“b2”) = 0.01

  ElseIf Range(“a2”) <= 3000 Then

    Range(“b2”) = 0.03

  ElseIf Range(“a2”) > 3000 Then

    Range(“b2”) = 0.05

  End If

  End Sub

                               
                                                                       
                       

Sub select区间判别()

 Select Case Range(“a2”).Value

 Case 0 To 1000

   Range(“b2”) = 0.01

 Case 1001 To 3000

   Range(“b2”) = 0.03

 Case Is > 3000

   Range(“b2”) = 0.05

 End Select

End Sub

                                                                                                                                  

12.循环语句

   A.单语句代码

     Sub t1()

      Range(“d2”) = Range(“b2”) * Range(“c2”)   ’将b2单元格与c2单元格相乘并赋值给d2单元格

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

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

      Range(“d5”) = Range(“b5”) * Range(“c5”)   ’将b5单元格与c5单元格相乘并赋值给d5单元格

      Range(“d6”) = Range(“b6”) * Range(“c6”)   ’将b6单元格与c6单元格相乘并赋值给d6单元格

     End Sub

  B.For each 循环语句

    Sub s1()

      Dim rg As Range

      For Each rg In Range(“a1:b7,d5:e9”)

        If rg = “” Then

           rg = 0

        End If

      Next rg

    End Sub

   ’注:在a1到b7单元区域和d5到e9单元格区域中的遍历全部单元格,若为空,就赋值0。

C、For Next语句

   Sub t2()

   Dim x As Integer

    For x = 10000 To 2 Step -3

     Range(“d” & x) = Range(“b” & x) * Range(“c” & x)

    Next x

   End Sub

   注:将10000行数据中每间距3行的b列和c列相乘赋值给d列。

D、For Each语句(应用offset方法来拟定单元格)

   Sub t3()

   Dim rg As Range

    For Each rg In Range(“d2:d18”)

     rg = rg.Offset(0, -1) * rg.Offset(0, -2)

    Next rg

   End Sub

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

   

                图12 offset函数解析图

E.Do ……Loop Until语句

   Sub t4()

   Dim x As Integer

    x = 1

    Do

      x = x + 1

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

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注