dBase通过OLE操作Excel添加工作表报错,求正确VB实现语法
报错原因
你触发报错是因为直接给Before参数传null不符合OLE自动化的参数约定:Before参数要求接收一个工作表对象作为插入位置参照,传入无效的null会被接口识别为非法参数,进而抛出属性获取失败的异常。
正确语法
1. VBA/VB环境推荐写法(命名参数,可读性高)
直接显式指定After参数即可,无需处理Before参数:
' 替换为你实际操作的工作簿对象即可 ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets("Sheet1")
2. 适配OLE调用的顺序参数写法(dBase环境可用)
如果你的开发环境不支持VB的命名参数语法,按参数顺序跳过Before参数即可,不用传入null占位:
' 第一个参数位置留空,直接传入第二个After参数 ThisWorkbook.Sheets.Add , ThisWorkbook.Sheets("Sheet1")
拓展用法
如果需要将新工作表添加到当前工作簿所有工作表的最后一位,修改After参数的参照对象即可:
ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
内容的提问来源于stack exchange,提问作者Gaetano De Luisi
相关产品推荐
相关产品推荐

