我要把b2.xls的数据提取写入到b1.xlt怎么提示下标越界?

狼二羊 2017-07-31 07:48:59
我要把b2.xls的数据提取写入到b1.xlt提示下标越界。。正确该怎么写。是跨工作簿的。
Sub test()
Workbooks("b2").Range("C1").EntireColumn.Copy Workbooks("b1").Range("D1")
End Sub
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
狼二羊 2017-07-31
  • 打赏
  • 举报
回复
引用 5 楼 Chen8013 的回复:
你如果觉得文档打开后,摆在那儿“不雅观”,你可以“隐藏工作簿”。 如果确定“不使用它了”,可以关闭。 Workbooks("b2").Close vbFalse 可以直接关闭 b2这个文档、并且不会保存更改(维持原始文档不变), 就算你在操作中把内容修改过了,它也不会问你“是否保存更改”。 相反:如果参数传 vbTrue,那么关闭时就会自动保存,如果“有更改”文档内容就更新了。
舉杯邀明月 2017-07-31
  • 打赏
  • 举报
回复
你如果觉得文档打开后,摆在那儿“不雅观”,你可以“隐藏工作簿”。 如果确定“不使用它了”,可以关闭。 Workbooks("b2").Close vbFalse 可以直接关闭 b2这个文档、并且不会保存更改(维持原始文档不变), 就算你在操作中把内容修改过了,它也不会问你“是否保存更改”。 相反:如果参数传 vbTrue,那么关闭时就会自动保存,如果“有更改”文档内容就更新了。
舉杯邀明月 2017-07-31
  • 打赏
  • 举报
回复
引用 3 楼 qq_30519247 的回复:
. . . . . . . . 啊对了大神能不能请教最后一个问题!就是这样的话必须要两个工作簿都打开,能不能b2的工作簿不用打开就可以
你不觉得你的想法很荒唐吗 !!!!
狼二羊 2017-07-31
  • 打赏
  • 举报
回复
引用 1 楼 Chen8013 的回复:
首先: 你确定你的“文档名”没有写错? 其次: 建议你写正确的“文档名.扩展名”的这种形式。比如 b1.xls 最后: 你的代码难道没有别的问题? 连“对象层次关系”都不正确吧!    工作簿对象的属性或成员中,根本就没有“Range”对象(或属性)好不!     并且,对象与“方法”接口也不能匹配吧!    感觉你的这个代码,运行时“错误信息”怎么可能是“下标越界”呢! 
' MS Excel / VBA代码示例:

' 整列复制操作:
'     把 “b2”的 Sheet1的C列,复制到 “b1”的 Sheet1的D列
Workbooks("b2").Sheets("Sheet1").Range("C:C").EntireColumn.Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D1")
' 单元格区域复制操作:
'     把“b2”的 Sheet1的C1:C20这20个单元格,复制到 “b1”的 Sheet1的D7开始处
Workbooks("b2").Sheets("Sheet1").Range("C1:C20").Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D7")
啊对了大神能不能请教最后一个问题!就是这样的话必须要两个工作簿都打开,能不能b2的工作簿不用打开就可以
狼二羊 2017-07-31
  • 打赏
  • 举报
回复
引用 1 楼 Chen8013 的回复:
首先: 你确定你的“文档名”没有写错? 其次: 建议你写正确的“文档名.扩展名”的这种形式。比如 b1.xls 最后: 你的代码难道没有别的问题? 连“对象层次关系”都不正确吧!    工作簿对象的属性或成员中,根本就没有“Range”对象(或属性)好不!     并且,对象与“方法”接口也不能匹配吧!    感觉你的这个代码,运行时“错误信息”怎么可能是“下标越界”呢! 
' MS Excel / VBA代码示例:

' 整列复制操作:
'     把 “b2”的 Sheet1的C列,复制到 “b1”的 Sheet1的D列
Workbooks("b2").Sheets("Sheet1").Range("C:C").EntireColumn.Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D1")
' 单元格区域复制操作:
'     把“b2”的 Sheet1的C1:C20这20个单元格,复制到 “b1”的 Sheet1的D7开始处
Workbooks("b2").Sheets("Sheet1").Range("C1:C20").Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D7")
谢谢大神!我真的是对这个vb一点不懂,看了你的回复学到了很多!都是基础!
舉杯邀明月 2017-07-31
  • 打赏
  • 举报
回复
首先: 你确定你的“文档名”没有写错? 其次: 建议你写正确的“文档名.扩展名”的这种形式。比如 b1.xls 最后: 你的代码难道没有别的问题? 连“对象层次关系”都不正确吧!    工作簿对象的属性或成员中,根本就没有“Range”对象(或属性)好不!     并且,对象与“方法”接口也不能匹配吧!    感觉你的这个代码,运行时“错误信息”怎么可能是“下标越界”呢! 
' MS Excel / VBA代码示例:

' 整列复制操作:
'     把 “b2”的 Sheet1的C列,复制到 “b1”的 Sheet1的D列
Workbooks("b2").Sheets("Sheet1").Range("C:C").EntireColumn.Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D1")
' 单元格区域复制操作:
'     把“b2”的 Sheet1的C1:C20这20个单元格,复制到 “b1”的 Sheet1的D7开始处
Workbooks("b2").Sheets("Sheet1").Range("C1:C20").Copy _
            Workbooks("b1").Sheets("Sheet1").Range("D7")

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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