Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1957|回复: 4

[已解决]在线等,数组越界问题!

[复制链接]
发表于 2013-12-12 21:36 | 显示全部楼层 |阅读模式
本帖最后由 victory610 于 2013-12-12 21:39 编辑

我想把test1下的test3工作簿的sheet1工作表的A1:A4单元格区域内容拷贝test3下的test5工作簿的sheet1工作表的A1:A4单元格;
同时把test2下的test4工作簿的sheet1工作表的B1:B4单元格区域内容拷贝test3下的test5工作簿的sheet1工作表的B1:B4单元格;

可为什么老是报错:数组下表越界呀。

实在是百思不得其解!

到底怎么解决这个问题呀,求大神给予解决办法,谢谢!

具体见附件!


最佳答案
2013-12-12 21:56
  1.     Dim strPath$
  2.     Dim wb As Workbook
  3.     strPath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "") - 1)
  4.     Set wb = GetObject(strPath & "\test1\test3.xlsx")
  5.     Application.ScreenUpdating = False

  6.     With wb
  7.         ThisWorkbook.Sheets("sheet1").Range("a1:a4").Value = .Sheets("sheet1").Range("a1:a4").Value
  8.         Windows(.Name).Visible = True
  9.         .Close False
  10.     End With
  11.    
  12.     Set wb = Workbooks.Open(strPath & "\test2\test4.xlsx")
  13.     With wb
  14.         ThisWorkbook.Sheets("sheet1").Range("b1:b4").Value = .Sheets("sheet1").Range("b1:b4").Value
  15.         Windows(.Name).Visible = True
  16.         .Close False
  17.     End With
  18.     ThisWorkbook.Save
  19.     Application.ScreenUpdating = True
  20.     MsgBox "复制完成"
复制代码

test.rar

24.92 KB, 下载次数: 3

发表于 2013-12-12 21:45 | 显示全部楼层
越界就是你访问了一个不存在的数组元素。
访问集合时指定的索引号或名称有误。

回复

使用道具 举报

 楼主| 发表于 2013-12-12 21:47 | 显示全部楼层
版主达人,那我这个代码应该怎样改才行呀,谢谢你啦。
回复

使用道具 举报

发表于 2013-12-12 21:56 | 显示全部楼层    本楼为最佳答案   
  1.     Dim strPath$
  2.     Dim wb As Workbook
  3.     strPath = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "") - 1)
  4.     Set wb = GetObject(strPath & "\test1\test3.xlsx")
  5.     Application.ScreenUpdating = False

  6.     With wb
  7.         ThisWorkbook.Sheets("sheet1").Range("a1:a4").Value = .Sheets("sheet1").Range("a1:a4").Value
  8.         Windows(.Name).Visible = True
  9.         .Close False
  10.     End With
  11.    
  12.     Set wb = Workbooks.Open(strPath & "\test2\test4.xlsx")
  13.     With wb
  14.         ThisWorkbook.Sheets("sheet1").Range("b1:b4").Value = .Sheets("sheet1").Range("b1:b4").Value
  15.         Windows(.Name).Visible = True
  16.         .Close False
  17.     End With
  18.     ThisWorkbook.Save
  19.     Application.ScreenUpdating = True
  20.     MsgBox "复制完成"
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-12 21:58 | 显示全部楼层
太感谢版主大人啦,虽然我看不懂这些代码,但我会好好学习的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-16 17:53 , Processed in 0.163240 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表