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
但是实际操作中会报错 ,原因是对象定义错误,请问为什么,有什么办法吗? 展开
如果行数是变量的话可以写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
但是实际操作中会报错 ,原因是对象定义错误,请问为什么,有什么办法吗? 展开
5个回答
展开全部
精简一点:
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参数分别代表调整后的单元格区域的行数和列数
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参数分别代表调整后的单元格区域的行数和列数
展开全部
楼主, 你需要在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这句.
Sheets(2).Activate, 原因是你虽然选中了sheet2,但是没有告诉EXCEL你要把sheet2作为需要操作的表,它认不出你的ActiveSheet是什么.我也经常犯这种错误.
(同样地在SHEETS(1).RANGE(CELLS(1,1),CELLS(2,i)).SELECT 前也应该加Sheets(1).Activate这句.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一句代码搞定
Sheets(1).Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Cells(1, 1)
Sheets(1).Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Cells(1, 1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试看:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看这段程序吧
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询