【原创】VBA(实验14) 选中多个工作表

选中多个工作表

  • 工作表对象的选择

  • worksheet.active                         永远只有有1个激活的
  • worksheet.select [replace]          参数 [replace]  参数,默认是true,改成false可以不替代选中
  • 或者用集合的选择

  • worksheets(array()).select          

 

工作表对象的选择

Sub select_sheet()


Dim wb As Workbook
Dim sh As Worksheet

Set wb = Workbooks("cs2.xlsm")  '如果不带后缀名会报错,下标越界。其实就是找不到表。


For Each sh In wb.Sheets        '不是 in wb !
    sh.Select False            '如果不设置select的 repalce参数(默认true),那么每次选择都会替代之前的
Next sh


Debug.Print ("all sheets are selected")
End Sub


 

如果需要先打开工作簿,再选择多个工作表

  • worksheet 归属于 worksheets 而不是workbook!
  • For Each sh In wb.Sheets        '不是 in wb !
  • 下面是我画的,理解的VBA的从属关系。绿色是对的,橙色的是错的。

 

 

 

  • 打开工作簿的语法
  • 1 需要带文件后缀名。因为EXCEL文件本身就有好几种后缀名。同名文件+后缀名 才可以唯一确定文件。
  •  Set wb = Workbooks("cs111.xlsm")  
  •  如果不带后缀名会报错,下标越界。其实就是找不到表。
  •  
  • 2 VBA里尽量用绝对路径
  • vba 不会默认在当前文件夹找 文件/excel工作簿,而是去找VBA默认文件夹
  • 所以,需要打开工作簿,需要带上绝对路径
  • 如Workbooks.Open(path & "\" & "cs111.xlsm")
  • 记得通过取path 把绝对路径拼出来就行
  • 如果要打开和操作的文件在同一文件夹内,path = ThisWorkbook.path  否则就自己写绝对路径
  •  
  • 3 语法
  • Set wb = Workbooks.Open(path & "\" & "cs111.xlsm")   
  • 写法不能是 workbooks(path & "\" & "cs111.xlsm").open 
  •  
  • 4 直接直接打开其他工作簿
  • Workbooks.Open(path & "\" & "cs111.xlsm") 
  • 或拆解为后面两句也行,先打开,再赋值
  • 'Workbooks.Open (path & "\" & "cs111.xlsm")
  • 'Set wb = Workbooks("cs111.xlsm")
Sub select_sheet()


Dim wb As Workbook
Dim sh As Worksheet

Rem Set wb = Workbooks("cs111.xlsm")    '如果不带后缀名会报错,下标越界。其实就是找不到表。


Rem Set wb = Workbooks.Open("cs111.xlsm")   'vba 不会默认在当前文件夹找,而是去找VBA默认文件夹
path = ThisWorkbook.path                   'VBA里尽量用绝对路径,记得通过取path 把绝对路径拼出来就行


Set wb = Workbooks.Open(path & "\" & "cs111.xlsm")  '写法不能是 workbooks().open ?!
Rem 拆解为后面两句也行,先打开,再赋值
'Workbooks.Open (path & "\" & "cs111.xlsm")
'Set wb = Workbooks("cs111.xlsm")



For Each sh In wb.Sheets        '不是 in wb !
    sh.Select False              '如果不设置select的 repalce参数(默认true),那么每次选择都会替代之前的
Next sh


Debug.Print ("all sheets are selected")
End Sub

 

 

工作表集合的选择

Sub t2()
Worksheets(Array("sheet3", "sheet2", "sum")).Select
Rem  Worksheets("sheet3", "sheet2", "sum").Select  '这样不行的


End Sub

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值