VBA读写Excel文件报错Debug
一、VBA简介
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。
可以认为 VBA 是非常流行的应用程序开发语言 VASUAL BASIC 的子集.实际上 VBA 是"寄生于" VB 应用程序的版本。
一般宏语言在office软件如word和Excel中应用的广泛一些,可以通过菜单栏中的视图——宏——录制宏来进行自动化操作编程。
二、VBA读写Excel文件
以在excel程序中编辑VBA为例,
Sub 宏2()
'
' 宏2 宏
'
Dim wb As Workbook
Dim ws As Worksheet
Dim fn$
Dim p0$
fn="D:\test.xlsx"
p0 = "5"
Set wb = Workbooks.Open(fn)
Set ws = wb.Sheets(1)
ws.Cells(15, CInt(p0)) = "hello"
End Sub
代码中wb即为工作簿对象,ws即为工作表对象,Sheets(1)就是选中第一个工作表sheet1,Cells(r,c) 是选择单元格指令,r是行数,c是列数,这里行和列都以整数表示。
三、调用Cells报错
上述代码中ws.Cells(15, CInt(p0)) = "hello"语句执行没有问题,但是改成ws.Cells(15, p0) = "hello"就会报错,经过调试发现调用Cells(r,c)时,r的数据类型可以是整数也可以是字符串型,而c只能是整数,如果是字符串类型就会报如下图应用程序定义或对象定义错误:
所以如果c的类型是字符串类型,就需要使用CINT(c)转换为整数类型。
参考文档
Workbooks.Open 方法 (Excel)
如何Word中用VBA打开Excel表格,读取其中的内容写入到Word
Workbook 对象 (Excel)