对EXCEL VBA中引用表的困惑
图中的表,如“最终应开机名单”,它的索引编号是6,我的问题是1、它前面是sheet5这是代表什么呢?2、在宏所在工作簿里,我可以用Sheet5.Cells(3,3)="o...
图中的表,如“最终应开机名单”,它的索引编号是6,我的问题是
1、它前面是sheet5这是代表什么呢?
2、在宏所在工作簿里,我可以用Sheet5.Cells(3, 3) = "ok"这么来引用表不会出错,但如果是宏在另一个表,那个表打开这个文件,就必须用它的索引编号或者表名来引用,比如sheets(6)或者sheets("最终应开机名单"),用worksheets("11111.xls").sheet5.cells(3.3)就会报属性或方法不可用,这是为什么呢?
3、如果我想用sheet5.cells(3.3)表示应该怎么写呢? 展开
1、它前面是sheet5这是代表什么呢?
2、在宏所在工作簿里,我可以用Sheet5.Cells(3, 3) = "ok"这么来引用表不会出错,但如果是宏在另一个表,那个表打开这个文件,就必须用它的索引编号或者表名来引用,比如sheets(6)或者sheets("最终应开机名单"),用worksheets("11111.xls").sheet5.cells(3.3)就会报属性或方法不可用,这是为什么呢?
3、如果我想用sheet5.cells(3.3)表示应该怎么写呢? 展开
4个回答
展开全部
打开你的代码界面,看到下图位置
在这里,每个工作表都i有两个名字,这两个名字都可以表示工作表,但是表示方法不一样。
前面的 sheet1 就是 sheet1.cells() 这种表示方法,
而括号内的名称 如 sheet3 ,应该这样:sheets("sheet3").cells
也就是说对于下图来说,一般 sheet1.cells 和 sheets("sheet3").cells 这两种表示方法都是表示同一个工作表。
再看看下图:
sheet5.cells 这里的 sheet5 这个名称是通过VB编辑器中的属性来修改的。
而 sheets("sheet5").cells 这个名称则是通过工作簿下方的标签来修改的。
追问
那在其他工作簿引用 这个表的时候为什么不能用sheet5这种表示方法呢,必须用它索引编号6或者是表名来引用,如我的提问2和3
追答
这个是规定。
跨工作簿不能用CodeName, 也就是 你说的 sheet5 这种表达方式。
展开全部
图没有呢
1、sheet5就是工作表从左到右第5个工作表,如果你只有三个表,肯定会出错的。你试一下;
2、worksheets("11111.xls")有没有5个表呢?应该没有吧。你可以写成worksheets("11111.xls").sheets("工作表名").cells(3,3)
3、还是一样,确保有5个工作表,就可以这样写,也可以写成sheets(5).cells(3.3),一样的
1、sheet5就是工作表从左到右第5个工作表,如果你只有三个表,肯定会出错的。你试一下;
2、worksheets("11111.xls")有没有5个表呢?应该没有吧。你可以写成worksheets("11111.xls").sheets("工作表名").cells(3,3)
3、还是一样,确保有5个工作表,就可以这样写,也可以写成sheets(5).cells(3.3),一样的
追答
按序排列的。正常。
一般你新建的工作表sheet1=序号1
sheet2=序号2
sheet3=序号3
如果打乱了,就不一样了。
所以,我们一般代码对需求引用到工作,建议使用sheets("工作表名").cells(1,1) 这样的方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,11111.xls 这个文件必须是打开状态
Workbooks("11111.xls").Sheets("Sheet1").cells(3.3)
或者
Workbooks("11111.xls").sheet5.cells(3.3)
Workbooks("11111.xls").Sheets("Sheet1").cells(3.3)
或者
Workbooks("11111.xls").sheet5.cells(3.3)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
显然问题出在worksheets("11111.xls"),应该是workbooks("11111.xls")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询