用VBA控制工作簿、工作表和单元格

发布时间:2018-07-02 12:38:04

Excel VBA中,最基本的编程工作就是对工作簿、工作表和单元格的控制,对于初学VBA的朋支来说,用VBA控制工作簿、工作表和单元格区域是必须熟悉的,否则,谈不上用VBA编程,下面我来介绍一下这方面的知识。

    一、利用VBA控制工作簿

     1、新建工作簿

     VBA中,新建工作簿的方法如下:

     Sub Addone()

         Workbooks.Add

     ENd Sub

     执行这段代码后,Excel会自动将新建的工作簿命名为BookN,并使新工作簿成为活动工作簿。其中“N”是继当前所有工作簿后下一个可用的数字,如当前工有Book1Book2两个工作簿,则N3,即创建新工作簿book3

    还有一个更好的方法创建新工作簿,即给它分配一个变量名,代码如下:

   Sub AddNew()

       Set NewBook = Workbooks.Add

         With NewBook

             .Title = "XSCJ"

             .Subject = "Sale"

             .SaveAs Filename:="XSCJ.xls"

         End With

    End Sub

    这段代码执行后,即新建了一个名为“XSCJ”的工作簿。

    2、打开工作簿

       可以使用Open方法打开指定的工作簿,比如,打开E盘下的指定文件。

     Sub OpenUP()

        Workbooks.Open ("E:\VBA视频教程\book1.XLS")

     End Sub

    二、利用VBA控制工作表

     1、按索引编号激活工作表

       “编号是分配给工作表的连续数字,如123等,可以使用WorkBooks属性来激活工作表,比如,要激活第2张工作表,其代码是:

     Sub JH2()

        Worksheets(2).Activate

     End Sub

    也可以使用下面的代码:

      Sub JH3()

          Sheets(3).Activate

      End Sub

    2、按名称激活工作表

      Sub JH4()

         Sheets("学生成绩表").Activate

      End Sub

      这段代码执行后即激活了当前工作簿中的学生成绩表的工作表。

   三、用VBA控制单元格

     1、用A1样式记号引用单元格和单元格区域

     可以使用Range属性来引用A1样式的单元格或单元格区域。比如,要将B2E9单元区域的字体设置为粗体,代码如下:

     Sub CT()

        Worksheets("学生成绩表").Select

        Range("B2:E9").Font.Bold = True

     End Sub

   2、引用行和列

    使用Rows属性或Columns属性可以处理整行或整列。比如,要将当前工作簿中的学生成绩表工作表上的第3行、第5行、第7行的字体设置成红色代码如下:

   Sub JC()

      Worksheets("学生成绩表").Activate

      Dim Myrows As Range

      Set Myrows = Union(Rows(3), Rows(5), Rows(7))  //"Union"联合的意思

      Myrows.Font.ColorIndex = 3   //将字体颜色设置成红色

   End Sub

   3、引用命名区域

    使用名称比用A1样式更容易标识单元格区域,要命名选定的单元格区域,只需单击编辑栏左端的名称框,输入名称,再按回车键即可。比如,给学生成绩表工作表的B2B52区域命名为“XB”,下面的代码将这个单元格区域的字体设置成斜体。

     Sub XT()

        Worksheets("学生成绩表").Activate

        Range("XB").Font.Italic = True

     End Sub

   4、使用Union方法组合单元格区域

    Union方法可以将多个单元格区域组合到一个Range对象中,比如,要将学生成绩表工作表中的E1F10H1J10单元格区域组合,将该组合区域的字体设置成粗体。代码如下:

   Sub ZH()

      Worksheets("学生成绩表").Activate

      Set r1 = Range("E1:F10")

      Set r2 = Range("H1:J10")

      Set r3 = Union(r1, r2)

      r3.Font.Bold = True

   End Sub

用VBA控制工作簿、工作表和单元格

相关推荐