【烟花原创】VBA零基础之第28篇 对象(三)

上一篇讲到了对象,在VBA中,还有一个非常重要的概念:集合Collections
  集合是一个包含一组类型相同的对象集。另外,其实集合自身也是一个对象。
  下面列出一有些经常使用到的集合对象:
   工作簿集合Workbooks  当前打开的所有Workbook对象的集合
   工作表集合Worksheets 指定的或活动工作簿中所有Worksheet 对象的集合
   图表集合Charts 指定的或活动工作簿中所有图表工作表的集合
   表集合Sheets  指定的或活动工作簿中所有工作表的集合,可以包含 Chart 或 Worksheet 对象。
  上述集合的英文名字后都带一个s(英文里的复数表示法)
  在Excel中,很多对象都是从相应的对像集合中引用的。
  列如:我们通过消息框显示指定工作簿(工作簿名为a.xlsm)的完整路径(目录和文件名)
      Dim wb As Workbook
      Set wb = Workbooks("a.xlsm")
      MsgBox Workbooks("a.xlsm").FullName
      MsgBox wb.FullName
'两种方法,其实都从引用工作簿集合(workbooks)
  For Each…Next:集合和数组专用的循环。
  语法:
  For Each 成员变量 In group
   语句
   Exit For
   语句
  Next 成员变量
  
  成员:必要参数,用来遍历集合或数组中所有元素的变量。
   对于集合来说,成员可能是一个 Variant 变量、一个通用对象变量Object或任何特殊对象变量。
   对于数组而言,成员只能是一个 Variant 变量。
  Group:必要参数,对象集合或数组的名称(用户定义类型的数组除外)。
  如果集合中至少有一个元素,就会进入 For...Each 块执行。
  一旦进入循环,便先针对 group 中第一个元素执行循环中的所有语句。
  如果 group 中还有其它的元素,则会针对它们执行循环中的语句,当 group 中的所有元素都执行完了,便会退出循环,然后从 Next 语句之后的语句继续执行。
  在循环中可以在任何位置放置任意个 Exit For 语句,随时退出循环。
  Exit For经常在条件判断之后使用,例如 If...Then,并将控制权转移到紧接在 Next 之后的语句。
  可以将一个 For...Each...Next 循环放在另一个之中来组成嵌套式 For...Each...Next 循环。
  但是每个循环的 element 必须是唯一的。
  如果省略 Next 语句中的 element,就像 element 存在时一样执行。
  如果 Next 语句在它相对应的 For 语句之前出现,则会产生错误。
  不能在 For...Each...Next 语句中使用用户自定义类型数组,因为 Variant 不能包含用户自定义类型。
  示例1:
   Dim sht As Worksheet
   Dim strMsg As String
     For Each sht In Worksheets
      '遍历当前活动工作簿中的工作表集合
    'FOR循环中的成员变量sht已经指定了类型为工作表类型
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox strMsg
 '通过消息框显示所有的工作表名称(不包含宏表,图形工作表)
示例2:
    Dim sht
    Dim strMsg As String
   For Each sht In Worksheets
    '遍历当前活动工作簿中的工作表集合
    'FOR循环中的成员变量sht没有指定类型(Variant类型)
      strMsg = strMsg & sht.Name &vbCrLf
   Next
   MsgBox strMsg
   '通过消息框显示所有的工作表名称(不包含宏表,图形工作表)
(0)

相关推荐

  • ExcelVBA_047 跨多文件查成绩

    一.需求说明 每学期考试结束后,需要把每个班的期中.期末两次考试成绩分别保存到一个Excel工作簿的两个工作表中,格式如图: 其中工作表名用于区分期中和期末.A3单元格保留年级和班级,第10行开始保存 ...

  • VBA的工作薄、工作表、单元格、数组等常见的对象的综合举例

    今天举的这个例子主要是先判断一个工作簿是否存在,如果不存在就开始新建一个工作簿,然后关闭新建的工作薄,再利用以前学过的数组,给没有打开的工作薄中添加表头,再添加数据. 这里面使用到了Workbook. ...

  • 【烟花原创】VBA零基础之第30篇 对象(五)

    一篇我们讲了如何引用对象,主要是通过从对象集合中进行引用,今天我们讲讲如何使用对象变量来引用对象. 什么是对象变量呢? 前面已经有过讲变量了,通俗的说,就是变量的类型是对象类型,象单元格,工作表,工作 ...

  • 【烟花原创】VBA零基础之第29篇 对象(四)

    引用对象是非常重要的,因为在代码里访问对象时必须指明需要操作的对象. 例如在日常中我们找某人的,肯定会喊某人的名字(不认识的可以喊美女帅哥),人家才会理你. 可在VBA代码中,你必须实打实的指明某个特 ...

  • 【烟花原创】VBA零基础之第27篇 对象(二)

    上一篇我们讲到Excel自身就是一个对象,应用程序(Application)是这个对象层次中的最顶层,下面列出了在Application对象中一些经常使用到的对象: 引用Addin 窗口Window ...

  • 【烟花原创】VBA零基础之第26篇 对象(一)

    对象,这词大家再熟悉不过了,此对象非彼对象. 对象代表应用程序中的元素. 例如在Excel中,我们用到的单元格,工作表,工作簿,图表,数据透视表等等都是对象. 引用JAVA<编程思想>里面 ...

  • 【烟花原创】VBA零基础之第12篇 常量

    上一篇讲了变量,这一讲咱们聊聊常量(也有MS管叫常数). 一.什么是常量     常量就是程序在运行时保持一个固定的值的命名项目.     常量可以是字符串,数值,另一常量,或者任何(除Is之外) 算 ...

  • 【烟花原创】VBA零基础之第19篇 Goto语句

    通过Goto语句,可以无条件地转移到过程中的指定的行,从而实现不同程序段间作流程控制. 语法: GoTo Line Line:必要参数,line可以是过程内任意的行号或行标签. 什么是行号? 用来识别 ...

  • 【烟花原创】VBA零基础之第18篇 Do…Loop循环 (二)

    上一篇讲的是当使用 While 关键字去检查 Do...Loop 语句中的条件时,有两种方法. 可以在进入循环之前检查条件,也可以在循环至少运行一次之后才检查条件. 今天要讲的是在Do-Loop循环中 ...

  • 【烟花原创】VBA零基础之第17篇 Do…Loop循环 (一)

    上一篇聊过了以指定次数执行语句的For Next循环,但是当我们不知道循环具体会运行多少次,但能通过某种条件的变化来实现控制循环的开始和结束,这便是今天咱们要聊聊的的Do-Loop循环. 一.当条件为 ...

  • 【烟花原创】VBA零基础之第15篇 Select Case 语句

    上一篇的咱们聊了IF-Then-Else语句,在块形式的IF判断中,如果条件比较多,IF-Then-Else 语句会计算每个Elseif 语句的表达式,另外当条件多时,Elseif对于代码的可读性大打 ...