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

2025-01-04 14:10:53
推荐回答(2个)
回答1:

精简一点:
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参数分别代表调整后的单元格区域的行数和列数

回答2:

楼主, 你需要在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这句.