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

比如说我现在要 从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
但是实际操作中会报错 ,原因是对象定义错误,请问为什么,有什么办法吗?

精简一点:
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参数分别代表调整后的单元格区域的行数和列数
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-09
楼主, 你需要在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这句.
第2个回答  2010-09-09
一句代码搞定
Sheets(1).Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Cells(1, 1)
第3个回答  2010-09-09
试试看:
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
第4个回答  2010-09-09
看这段程序吧
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

excel vba中 我想要复制一个区域的内容到另外一张表上,但是复制区域的...
比如说我现在要 从A1到 i 2(其中i是变量 ,表示列数 )选中 ,然后复制 ,然后在另外一张表中 粘帖。如果行数是变量的话可以写sheet(1).range("A1:B" & i &).select 来解决,但是列数的话是ABCD下去的 。。。我写的是SHEETS(1).RANGE(CELLS(1,1),... 展开 ptwhitecat | 浏览5957 次 |举报 我...

EXCEL vba如何复制到另一张工作表
到另一张工作表,选中同样大小的单元格区域,右键,粘贴。方法很多的。(1)利用高级筛选,将记录筛出来,放在本工作表内,然后复制到别的工作表。这方法相对简单。(2)如果数据量少,可以利用函数。(3)透视表或者VBA编程

EXCEL vba怎样将一个工作薄的内容复制到另一个工作薄中
运行之后,选择那个“文件2”,点确定,就把“文件2”里"sheet3"的A1:L1000复制到运行文档“sheet1”的B2:M1001了~附件文档的模块1里,按alt+f11打开编辑器 Sub a()Dim a With Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = False .InitialFileName = ThisWorkbook.Path If ....

使用VBA, 如何将一个EXCEL文档中某个区域的内容自动复制到另一个EXCEL...
意思就是把工作簿1中工作表sheet1的A1:C50区域复制到当前工作簿sheet2工作表的A1区域(这个区域与前面的区域是一样的,只需要写左上角的单元格即可)

请问如何用VBA将一个EXCEL文件中的数据复制到别一个EXCEL文件相同的位置...
a = Application.InputBox("选择要复制的单元格区域")b = a.Address '返回复制源单元格地址 xl1.Range(b).Copy xl2.Range(b) '完成COPY Set xl1 = Nothing '释放变量 Set xl2 = Nothing End Sub

利用excel的VBA,将一个已知workbook的内容复制到另一个workbook中,程序...
方法1:选workbook1的sheet1 Ctrl+A Ctrl+C 然后选workbook2。 sheet1 Ctrl+V 我试过CP 38万条数据 也用不了多久。方法2:右键点原数据的sheet表,选“移动或复制工作表”,在工作薄中选择目标文件名,选中“建立副本”。方法3:如果是多文件。多sheet表。在被写入的文件中写入VBA Public filepath As StringPubl...

excel中怎样用VBA实现自动复制一列数据到另一个工作表?
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Range("A1"), Target) Is Nothing And Target.Count = 1 Then Dim N& N = Val(Target) If N > 0 And N <= Cells.Columns.Count Then Sheet1.Columns(N).Copy [A1] Else Columns...

...用vba代码把一个文件中某一个sheet里指定区域内容复制到另一个汇总...
private Sub bookMerge(nstart As Long, ncolumn As Integer)' MsgBox "欢迎使用合并工作表工具1.0" & Chr(13) & "made by excel880工作室" & Chr(13) _' & "本工具将合并当前目录下所有工作簿的第一个工作表到一个工作簿"' Dim fs, f, f1, fc, s Dim wk As Workbook...

excel vba 点控件执行复制数据到另一工作表
1.在sheet1中先写好筛选条件,点开文件复制的目标excel(本文是sheet2),最上面工具栏中点“数据”,找到筛选旁边的“高级”选项,跳出“高级筛选”框 2.选中“将筛选结果复制到其他位置”,然后“列表区域”选中sheet1中的原始数据,“条件区域”选中sheet1中我们提前写好的条件,“复制到”选中sheet2...

用vba怎样取excel中的一列在将提取的数据放到另一个sheet的一行,求代码...
'在sheet2的单元格A1输入sheet1的A1的值 sheets("sheet2").cells(1,1)=sheets("sheet1").cells(1,1)或 sheets("sheet2").range("a1")=sheets("sheet1").range("a1")

相似回答