之前写了VBA入门只需3天的系列文章。总计3篇。相信大家看过之后就可以完成批量合并100个Sheet这样的需求了。以下是原贴的链接。大家可以参考。
接下来的一段时间,预计会制作一款供应商增删改查的小工具,方便自己平时在工作的时候管理供应商。并且后期这些供应商将会为我们提供打印、导出账单的数仓功能。
今天晚上刚刚构思了新增供应商的界面。后期会更新改供应商,查询供应商和删除供应商的界面。
这边的思路是每个信息都必须要填写,如果没有填写则不能添加成功。
另外如果供应商重复,则无法添加。
界面是用ActiveX控件画出来的。底色是单元格的颜色。
两个按钮添加了button_click事件。由于中间还是涉及到了比较多的细碎点,所以今天没办法一下子把所有内容都穷尽,只能分开一部分一部分记录。
今天我们来说说如何引用Sheet
如果所有的操作都是在当前的Sheet完成的话,是不需要引用Sheet的。
举个例子,当前有Sheet1和Sheet2两个Sheet,假设当前选中的是Sheet2,我们输入:Range("A1") = "Hello World",那这两个Sheet中,哪个单元格会被赋值为Hello World呢。答案是Sheet2单元格。
当单元格前没有Sheet的时候,引用的默认都是当前的Sheet。
因此,当我们处在Sheet2,又希望Sheet1的A1单元格被赋值为Hello World时,代码就应该这样被修改:Sheet1.Range("A1") = "Hello World"。
以下来介绍一下,引用Sheet的所有方法。
1、使用工作表的代码名称
使用工作表的代码名称,大家可以使用Alt+F11打开VBA编辑器,
左侧就是工作表的代码名称了。
不管我们如何修改Sheet的名称,在代码名称中,他们仍然是Sheet1、Sheet2。使用代码名称来引用Sheet是比较好用的方法,适用于我们知道每个Sheet的内容,并且Sheet名称不是需要判断的场景。
2、使用工作表的索引号
使用工作表的索引号,写法是用一对括号把数字括起来,参考如下:
Sheets(1).Range("A1") = "Hello World"
请注意是Sheets(1)而不是Sheet(1),如果没有s,是会报错的。
而索引号的顺序,就是Excel下方Sheet导航栏展示的顺序。
大家可以看代码演示,索引号是2,那就是总左至右第二个Sheet,即使这个Sheet的名称是Sheet1。
3、使用工作表名称来引用
使用工作表的名称来引用,顾名思义,就是工作表叫什么名称,引用的时候就如何使用。使用方法如下:
Sheets("我的名称").Range("A1") = "Hello World"
如图:
当我们知道如何引用不同Sheet的数据的时候,
我们就可以自由的操作,将我们的数据存放到对应的地方。
明天,我们将对ActiveX的控件进行说明,以及我们要如何设置我们的结构。