对象变量或with块变量未设置怎么解决_VBA小常识(12)—for each in循环与workbook对象...

688ca756ae26a63b281a1dbacd559c33.png

VBA小常识(12)—for each in循环与workbook对象

学习自杨洋老师《全民一起学VBA》

1. for each 循环可以用在任何一个集合对象上,例如worksheets、workbooks、range等

2. for each 循环的典型结构如下:

For each a in b 
	……
Next a

循环扫描集合b中的每一个元素,赋值给a

相当于:

For i=1 to b.count
	a=b(i)
	……
Next i

3. 字符串比较的时候,可以使用trim函数去除字符串两边由于手误而输入的多余空格,再进行比较。有时候有些名称并不区分大小,这时就可以用lcase或者ucase函数转换为全部大写,或全部小写再进行比较。

Workbook汇总不同工作簿文件

1. workbook代表一个打开的工作簿文件,所有打开的文件组合成workbooks集合。

2. workbooks.open("文件路径")。打开指定路径的Excel文件,并返回一个Workbook对象。路径写法,如"D:a文件夹b文件夹数据.xlsx"。也可以写"数据.xlsx",此时路径默认为vba程序所在的excel文件所在的路径,但不建议使用这种写法。

3. workbooks.close 关闭这个workbook文件

4. workbook.saveas "路径及文件名"。将workbook文件保存到指定路径和文件名下。"路径及文件名"前后没有括号

5. workbooks.add 新建一个工作簿文件,并作为一个workbook对象返回。

错误提示可以对应的错误

运行时错误‘91’:

对象变量或With块变量未设置

1. 变量名写错了,函数名写错了

2. 对象赋值时,忘记了加关键字set