导入excel的问题

湖中仙人 2008-11-25 05:01:04
我在导入excel时为什么每次运行到xlSheet1 = xlBook.Worksheets(1)这句时就提示无效索引,请大家帮下忙
Dim xlApp As Interop.Excel.Application
Dim xlBook As Interop.Excel.Workbook
Dim xlSheet1 As Interop.Excel.Worksheet
Dim xlSheet2 As Interop.Excel.Worksheet
Dim xlSheet3 As Interop.Excel.Worksheet
Dim xlSheet4 As Interop.Excel.Worksheet

xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add
xlBook.Sheets.Add()

xlSheet1 = xlBook.Worksheets(1)
xlSheet2 = xlBook.Worksheets(2)
xlSheet3 = xlBook.Worksheets(3)
xlSheet4 = xlBook.Worksheets(4)
...全文
221 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
湖中仙人 2008-11-27
  • 打赏
  • 举报
回复
不行啊,没必要装到2000去吧,我的其它电脑上都是2003也没这种问题啊
沐NeMo 2008-11-27
  • 打赏
  • 举报
回复
xlApp = New Excel.Application
ShowMsg("添加工作簿books...")
xlBook = xlApp.Workbooks.Add
ShowMsg("添加工作表sheet...")
'--系统默认添加3个sheet表
xlSheet = xlBook.Worksheets.Item(xlBook.Worksheets.Count)
ShowMsg("设置工作表1的格式...")
xlSheet = xlBook.Worksheets.Item(1).Item(1)
湖中仙人 2008-11-27
  • 打赏
  • 举报
回复
谢谢了,我的是office2003,我先试下
suntory976806 2008-11-27
  • 打赏
  • 举报
回复
另外,单步调试一下,监视一下xlBook 的状态
suntory976806 2008-11-27
  • 打赏
  • 举报
回复
1、同意11楼的观点,xlBook.Worksheets(0)肯定是有的,至于xlBook.Worksheets(1)有没有就要看打开的文件木板了;
2、建议使用 xlSheet = xlBook.Worksheets("sheet1") 这种绝对引用。实在要用索引加try;
3、跟office版本应该没有关系。
湖中仙人 2008-11-27
  • 打赏
  • 举报
回复
忘记说了,我在那台问题电脑上如果导出的只有一张sheet就没问题
不过我的代码在其它几上导4个sheet的没问题,就那一台机上不行
yanlongwuhui 2008-11-26
  • 打赏
  • 举报
回复
那估计你还有别的代码对EXCEL进行操作了,所以才会有4个Worksheets。你应该改下:
if xlbook.Worksheets.Count>=4 then
xlSheet1 = xlBook.Worksheets(1)
xlSheet2 = xlBook.Worksheets(2)
xlSheet3 = xlBook.Worksheets(3)
xlSheet4 = xlBook.Worksheets(4)
else
msgbox(".....")'提示错误
end if
湖中仙人 2008-11-26
  • 打赏
  • 举报
回复
谢谢,但现在是只在有台电脑上有这个问题,其它的没有
yanlongwuhui 2008-11-26
  • 打赏
  • 举报
回复
Sheet3 = xlBook.Worksheets(3) 会出错,你可以跟踪下看下xlbook.Worksheets.Count的值
湖中仙人 2008-11-26
  • 打赏
  • 举报
回复
我加了new 和,改为从0开始还是一样啊??
湖中仙人 2008-11-26
  • 打赏
  • 举报
回复
楼上的兄弟,问题的现象你说对了,但你给我的解决方法好像通不过,能帮下忙吗?
湖中仙人 2008-11-26
  • 打赏
  • 举报
回复
楼上这位兄弟说的和我的很近了,我的也是在有的机上可以,有的不行?
  • 打赏
  • 举报
回复
如果是GHOST的XP,要重装一下office,我装的是office2000
肯定解决问题
  • 打赏
  • 举报
回复
后期绑定的代码:
Dim xlApp As Object 'excel.Application
Dim xlBook As Object ' Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Dim xlQuery As Object ' Excel.QueryTable
xlApp = CreateObject("Excel.Application")
xlBook = Nothing
xlSheet = Nothing
xlBooks = xlApp.workbooks
xlBook = xlBooks.Add
xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = False
floadcloud 2008-11-25
  • 打赏
  • 举报
回复
关注...
tjficcbw 2008-11-25
  • 打赏
  • 举报
回复
有的office2003要sp3的,
ChengKing 2008-11-25
  • 打赏
  • 举报
回复
生成/读取(反向更新数据库) Excel文件(示例代码下载) :
http://blog.csdn.net/ChengKing/archive/2005/11/29/539514.aspx
  • 打赏
  • 举报
回复
我原来遇到过,在这个机子上行,但换个机子就不行了
你用后期绑定试试,可以解决
liye9801 2008-11-25
  • 打赏
  • 举报
回复
郁闷了,为什么同样的代码你的就出错呢?
也许是Excel 版本的问题吧...
我是 Office 2003
liye9801 2008-11-25
  • 打赏
  • 举报
回复
看来我错了,你的代码在我这里没有任何问题....
加载更多回复(13)

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧