看了这么多VBA代码,相信你应该比较熟悉这个结构了:
1 | Sub 过程名() |
前面也讲过,这在VBA里面称为“一个过程”。所有需要做的操作都包含在过程中,也就是夹在Sub 过程名()
和End Sub
之间。
我们之前看到的代码,无一例外,Sub 过程名()
的括号中是空的,也就是不带任何参数的,实际使用时,可能存在与外部交互,也就是sub过程中的用到的变量,需要从外部输入才能确定的情况,那该怎么办?
解决办法就是:自定义一个待参数的sub过程。按照惯例,先上代码:
1 | Sub 创建表(str As String) |
上述代码的意思就是,新建工作表,并将工作表命名为str,前提是当现有文件中存在同名str的工作表时,不创建。
为什么要自定义这种带参数的sub过程呢,刚才上面提到了一点,下面再通过具体的例子,理解一下:
1 | Sub 创建工作表并命名() |
上述代码中,InputBox("请输入要创建工作表的名字")
就会弹出一个对话框,让你输入要创建的工作表的名字,当输入完成,点击确定后,你输入的内容就会被赋值给str这个变量。接着代码继续向下执行Call 创建表(str)
,意思就是调用之前写好的过程Sub 创建表(str As String)
,同时将str这个变量作为参数输入到这个sub过程中。
最后,执行的效果就是在当前EXCEL工作簿文件中新建了一张名字为“str”的工作表。比如你但是输入的工作表名字是:“我的工作表”,那么工作簿里就会新建一个名字为“我的工作表”的新表。不行,就试试呗。
另外,仔细观察一下新建的那张表处于的位置,无论原有文件中有多少张工作表,新建的表始终处于所有表的最后面,知道为什么吗?
答案就在上面的某一行代码里,找找看吧。