VBA实战技巧精粹004:在工作簿中添加新工作表

使用Worksheets集合或Sheets集合的Add方法可以实现在指定位置添加新工作表,并且添加后的新工作表自动为活动工作表。

Sub 插入新工作表并改名()
    With Worksheets
        .Add after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = "ExcelHome"
    End With
End Sub
上面的程序可以实现在当前工作簿中的所有工作表后面添加一个新工作表,并将其名称重命名为“ExcelHome”

需要解释一下Add方法后的参数:

expression.Add(Before, After, Count, Type)

expression      必需。该表达式返回上面的对象之一。

Before      Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之前。

After      Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之后。

Count      Variant 类型,可选。要新建的工作表的数目。默认值为 1。

Type      Variant 类型,可选。指定工作表类型。可为以下 XlSheetType 常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。如果要基于现有模板插入工作表,则请指定该模板的路径。默认值为 xlWorksheet。

说明

如果 Before 和 After 两者均省略,则新建的工作表将插入到活动工作表之前。

这里提到了Count参数,什么意思?可以指定一次插入多少张工作表!

Sub 插入新工作表并改名2()
    With Worksheets
        Debug.Print .Count
        .Add after:=Worksheets(Worksheets.Count), Count:=10
        ActiveSheet.Name = "ExcelHome"
        Debug.Print .Count
    End With
End Sub

有个问题,当工作簿窗口隐藏时,再运行上面的程序就会报错:5609846908_7935288286.jpg

如何解决?将工作表的创建进行实例化,可以解决这个问题。

Sub 插入新工作表并改名改进()
    Dim sht As Worksheet
    With ThisWorkbook
        Set sht = .Worksheets.Add(after:=.Worksheets(.Worksheets.Count))
        sht.Name = "Excelhome"
    End With
    Set sht = Nothing
End Sub

仔细对比上两段代码,有个地方:Add方法第一段代码加括号不能通过,而第二段代码中必须用括号括起来,不然也无法通过,为什么?哪位大侠知道望能不吝赐教。

 

43 Things: Excel VBA
BuzzNet: Excel VBA
del.icio.us: Excel VBA
Flickr: Excel VBA
IceRocket: Excel VBA
LiveJournal: Excel VBA
Technorati: Excel VBA
菊子曰 这就是 菊子曰啦!

转载于:https://www.cnblogs.com/xiehui/archive/2011/04/11/2012864.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值