请问在VBA中我要复制sheet2中的Range(Cells(1, 1), Cells(3, 28))到同一个文件的sheet1中,为什么出错

Sheet1.Range(Cells(6, 1), Cells(8, 28)).Value = Sheet2.Range(Cells(1, 1), Cells(3, 28)).Value
提示的错误是方法“range”作用于对象“worksheet”时失败。
请高手指教

你标定单元格区域时出错了:
Sheet1.Range(Cells(6, 1), Cells(8, 28))
应该写为:
Sheet1.Range(Sheet1.Cells(6, 1),Sheet1.Cells(8, 28))

全部:
Sheet1.Range(Sheet1.Cells(6, 1), Sheet1.Cells(8, 28)).Value = Sheet2.Range(Sheet2.Cells(1, 1), Sheet2.Cells(3, 28)).Value
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-13
你的语句只为range指定了父对象为sheet1、sheet2.而没有为cells指定父对象。
而没有指定父对象的cells默认是当前激活工作表的cells 如果cells的的父对象与你指定的range的父对象不相符时会报错。
完整的指定父对象的语句如下:
Sheet1.Range(sheet1.Cells(6, 1),sheet1. Cells(8, 28)).Value = Sheet2.Range(sheet2.Cells(1, 1), sheet2.Cells(3, 28)).Value本回答被提问者采纳
第2个回答  2013-02-13
这个不能一气呵成的,只能一个一个来!
Sheet1.Cells(6, 1).Value = Sheet2.Cells(1, 1).Value
Sheet1.Cells(8, 28).Value = Sheet2.Cells(3, 28).Value追问

你好,我是想复制一个区域,就比如上面的,Cells(1,1)到Cells(3,8)这个区域(应该A1:AB2这个区域),不只是两个单元格,能否用cell实现呢?
我尝试了下,在同一个工作簿主这个命令是不出错的,但是如果在不同的工作簿,就像在sheet1和sheet2之间用,就报错。

追答

那个更应该用Range属性来确定区域;
你可以这样,用录制宏的办法;
1,使用EXCEL的菜单,[工具] -- [宏] -- [录制新宏] -- [确定]。
2,切换到工作表“Sheet2”,选中区域"A1:H3",单击[复制],切换到工作表“Sheet1”,选中单元格“A1”,单击[粘贴]。
3,使用EXCEL的菜单,[工具] -- [宏] -- [停止录制]。
4,使用EXCEL的菜单,[工具] -- [宏] -- [宏],选中刚才录制的宏,单击[编辑],就可以看到刚才执行的操作的完整宏了。

相似回答