excel vba中 我想要复制一个区域的内容到另外一张表上,但是复制区域的列数是一个变量 ,请问该怎么写程序

比如说我现在要从A1到i2(其中i是变量,表示列数)选中,然后复制,然后在另外一张表中粘帖。如果行数是变量的话可以写sheet(1).range("A1:B"&i&).s... 比如说我现在要 从A1到 i 2(其中i是变量 ,表示列数 )选中 ,然后复制 ,然后在另外一张表中 粘帖。
如果行数是变量的话可以写sheet(1).range("A1:B" & i &).select 来解决,但是列数的话是ABCD下去的 。。。。。
我写的是SHEETS(1).RANGE(CELLS(1,1),CELLS(2,i)).SELECT
SELECTION.COPY
SHEETS(2).CELLS(1,1).SELECT
ActiveSheet.Paste
但是实际操作中会报错 ,原因是对象定义错误,请问为什么,有什么办法吗?
展开
 我来答
cm6705
2010-09-19 · TA获得超过328个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:399万
展开全部
精简一点:
Dim i As Integer
i = 2
Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Range("a1")
如果要打开Sheets(2)工作表,在最后加上语句:Sheets(2).Activate
用以下语句也可以:
Range("a1").Resize(2, i).Copy Sheets(2).Range("a1")
说明:
Range对象的Resize属性是用于调整指定区域的大小,并返回调整后的单元格区域。
语法:Resize(RowSize,ColumnSize)
其中RowSize参数和ColumnSize参数分别代表调整后的单元格区域的行数和列数
格兰芬多宝0H
2010-09-09 · TA获得超过643个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:207万
展开全部
楼主, 你需要在SHEETS(2).CELLS(1,1).SELECT的前面加上下面这句
Sheets(2).Activate, 原因是你虽然选中了sheet2,但是没有告诉EXCEL你要把sheet2作为需要操作的表,它认不出你的ActiveSheet是什么.我也经常犯这种错误.
(同样地在SHEETS(1).RANGE(CELLS(1,1),CELLS(2,i)).SELECT 前也应该加Sheets(1).Activate这句.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
henqideyx
2010-09-09 · TA获得超过1098个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:470万
展开全部
一句代码搞定
Sheets(1).Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Cells(1, 1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bigfaint
2010-09-09 · TA获得超过2029个赞
知道大有可为答主
回答量:1550
采纳率:25%
帮助的人:704万
展开全部
试试看:
Dim i As Integer
i = 3
Sheets(1).Range(Cells(1, 1), Cells(2, i)).Select
Selection.Copy
Sheets(2).Activate
Cells(1, 1).Select
ActiveSheet.Paste
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
logi_i
2010-09-09 · TA获得超过1419个赞
知道小有建树答主
回答量:1254
采纳率:41%
帮助的人:224万
展开全部
看这段程序吧
Sub pp()
Dim i As Integer
i = 2
Worksheets(1).Activate
Range(Cells(1, 1), Cells(2, i)).Select
Selection.Copy
Worksheets(2).Activate
Range("A1").Select
ActiveSheet.Paste
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式