VFP控制EXCEL工作表

Excel问题 | 2015-05-02 21:28:33 | 4504次阅读 | 1评
三、VFP控制EXCEL工作表
  工作表是操作 EXCEL 时不可缺少的对象,同时是编辑单元格对象的入口和载体,利用 VFP 更好的控制 EXCEL 工作簿和单元格,掌握控制工作表的方法至关重要。
3.1 插入工作表
  在新打开的工作簿中,默认有三个工作表,当工作表的数量不够用时,可以插入工作。
3.1.1 插入指定数量工作表
  使用以下代码可以插入新的工作表。
  1、插入单个空白工作表,不带参数增加新表至当前工作表之前
  oExcel.Sheets.Add
  说明:
  ●使用 Sheets (工作表集合对象)的 Add 方法可以插入空白工作表。
  2、插入多个空白工作表,带参数增加两个新表至当前工作表之前
  oExcel.Sheets.Add(,,2,-4167)


3.1.2 指定位置插入工作表
  如果需要对插入的工作表指定位置,可以使用以下代码。
  1、在指定工作表前插入N个工作表
  oExcel.Sheets.Add(oExcel.Sheets(I),,N,-4167)
    说明:
  ●在第I个工作表前插入N个工作表,EXCEL2003 工作簿中最多只能有 255 个工作表。
  2、在指定工作表后插入N个工作表
  oExcel.Sheets.Add(,oExcel.Sheets(I),N,-4167)
    说明:
  ●在第I个工作后插入N个工作表,EXCEL2003 工作簿中最多只能有 255 个工作表。
  3、在工作表的最后位置插入N个工作表
  oExcel.Sheets.Add(,oExcel.Sheets(oExcel.Sheets.Count),N,-4167)
    说明:
  ●在工作表最后位置插入N个工作表,EXCEL2003 工作簿中最多只能有 255 个工作表。
  ●oExcel.Sheets.Count:当前工作簿中工作表的数量。Count 是工作表集合对象(Sheets)的属性,表示工作表的总数量。
  4、在工作表最前位置插入N个工作表
  oExcel.Sheets.Add(oExcel.Sheets(1),,N,-4167)
    说明:
  ●在第 1 个工作表插入N个工作表,EXCEL2003 工作簿中最多只能有 255 个工作表。


3.1.3 插入工作表的命名
  在工作表集合对象(Sheets)的 Add 方法中,没有提供直接命名的变量;如果需要为工作表命名,可以使用以下代码。
  1、为插入的单个工作表命名
  代码1
  cName=oExcel.Sheets.Add(,.Sheets(2),1,-4167)
    cName.Name="数学"
  ●Name:是工作表的属性名,指工作的名称。
  代码2
  oExcel.Sheets.Add
    oExcel.ActiveSheet.Name="数学"
    说明:
  ●ActiveSheet:是指当前活动的工作表。新插入的工作会自动成为活动工作表,所以 ActiveSheet 是指新插入的工作表。
  ●oExcel.ActiveSheet.Name="数学":当前活动工作表的名称为数学。
  2、插入12个工作表,并分别命名为 1-12月
  oExcel=CreateObject("Excel.Application")
  With oExcel
      .WorkBooks.Add
      * 插入工作表并且命名
      For lnI=1 To 12
          .Sheets.Add
          .ActiveSheet.Name=Transform(lnI)+"月"
      EndFor 
        .Visible=.T.
  EndWith


3.1.4 插入前判断工作表是否存在
  有时在插入工作表前需要判断该工作前是否存在,再进行插入工作表的操作。判断的原因是如果该存在工作表,使用插入工作表并命名相同的名称时,会发生错误提示信息。
  oExcel=CreateObject("Excel.Application")
  With oExcel
      .WorkBooks.Add
      * 判断工作表名称是否存在
      For lnI=1 To .Sheets.Count
          If .Sheets(lnI).Name=="数学"
              MessageBox("工作表"+.Sheets(lnI).Name+" 已存在")
              Exit 
          EndIf 
      EndFor 
      .Sheets.Add
      .ActiveSheet.Name="数学"
      .Quit
  EndWith 
  Release Quit


3.1.5 获取工作表名称
    oExcel=CreateObject("Excel.Application")   && 创建Excel对象
    With oExcel
        .WorkBooks.Add                         && 添加新工作簿,默认为3个工作表
        * 插入工作表并且命名
        For lnI=1 To 12
            .Sheets.Add
            .ActiveSheet.Name=Transform(lnI)+"月"
        EndFor 
        * 获取工作表名称
        For lnI=1 To .Sheets.Count
            ?.Sheets(lnI).Name
        EndFor 
  EndWith 


3.2 选取工作表
  选取工作表是编辑工作表及单元格的前提。
3.2.1 选取指定工作表和设置活动工作表
  1、选取指定工作表
  oExcel.Sheets("Sheet1").Select
    2、设置活动工作表
    oExcel.Sheets("Sheet1").Activate
  说明:
  ●oExcel.Sheets("Sheet1").Select:选取 Sheet1 工作表,Select 是工作表对象集合(Sheets)的方法,使该工作表处于选取状态。
  ●oExcel.Sheets("Sheet1").Activate:设置工作表 Sheet1 为活动状态,Activate 是工作表对象集合(Sheets)的方法,使该工作表处于活动状态。
  ●Select 与 Activate 的区别:在操作一张工作表时二者结果相同,都是选取该工作表并使该工作表成活动状态。主要区别是当同时选取多个工作表时,只能设置一个工作表为活动状态。


3.3 工作表在工作簿内移动或复制
3.3.1 移动工作表
  1、移动到指定工作表之前(将第一个工作表移动到第三个工作表之前)
  oExcel.WorkSheets("Sheet1").Move(oExcel.WorkSheets("Sheet3"))
  或者
  oExcel.Sheets(1).Move(oExcel.Sheets(3))
  2、移动到指定工作表之后(将第一个工作表移动到第三个工作表之后)
  oExcel.WorkSheets("Sheet1").Move(,oExcel.WorkSheets("Sheet3"))
  或者
  oExcel.Sheets(1).Move(,oExcel.Sheets(3))


3.3.2 复制工作表
  1、复制到指定工作表之前(将第一个工作表复制到第三个工作表之前)
  oExcel.WorkSheets("Sheet1").Copy(oExcel.WorkSheets("Sheet3"))
  或者
  oExcel.Sheets(1).Copy(oExcel.Sheets(3))
  2、复制到指定工作表之后(将第一个工作表复制到第三个工作表之后)
  oExcel.WorkSheets("Sheet1").Copy(,oExcel.WorkSheets("Sheet3"))
  或者
  oExcel.Sheets(1).Copy(,oExcel.Sheets(3))


3.4 删除指定工作表
  oExcel.Sheets(1).Delete
博友评论,共1条
Image
1楼: 罗愈作温 发表于 2018-04-12 16:01   回复
浏览172850次
最新评论