excel vba 求代码,粘贴到最后一行字符的下一行

在一个文件里有几个excel表
怎样将其中一个粘贴到另一个数据表的尾行
尾行不确定是哪行,会变
请高手指教

如把sheet1表中的全部数据粘贴到sheet2表A列的最后一行之下,代码如下:
sheet1.usedrange.copy sheet2.range("A"&sheet2.range("A65536").end(xlup).row+1)
其中
sheet1.usedrange表示sheet1表中非空单元格区域中所有数据
sheet2.range("A"&sheet2.range("A65536").end(xlup).row+1)表示sheet2表中A列最后一行的下一个单元格。追问

不是一个excel表中的多个sheet
而是一个文件夹下面的多个excel表
另外
不是空的就可以
一定是要最后一行 因为工作表中可能有空格行,但是 我要的是粘贴到最后一行

追答

以上代码是同一工作簿中的工作表,就是这个意思,你没有试下吗?
如果是不同工作簿,那就要看你的具体情况了,可以使用dir函数来处理。
思路同上述代码。

追问

我的情况就是不同的工作薄

追答

你的意思就是从同一文件夹中不同工作簿中指定的工作表粘贴数据到同一个工作簿的同一工作表中来,就是把多个工作簿的数据合并到同一个工作表中,是不是这样?

追问

我的意思是:
例如我有一个文件夹A
里面有4个工作薄
分别是1,2,3,4(1,2,3,4中都只有一个工作表)
我要将1,2,3复制粘贴到4中,格式保留,要依次粘贴,不能将原内容覆盖

追答

代码写到4工作簿中,运行以下代码即得到你要的结果,注意这四个文件在同一个文件夹中即可,可更多文件,自动全部写完。
Sub aa()
Dim i&, arr, str_Lj As String, str_Bm As String, str_Bm1 As String
str_Bm1 = ThisWorkbook.Name '当前工作簿名
str_Lj = ThisWorkbook.Path & "\" '当前簿路径
str_Bm = Dir(str_Lj & "*.xls") '路径下的工作簿
Do While str_Bm "" ' 开始循环。
If str_Bm str_Bm1 Then
Workbooks.Open str_Lj & str_Bm
arr = Workbooks(str_Bm).Sheets(1).UsedRange '打开工作簿并把第一个表的数据赋值给数组arr
Workbooks(str_Bm).Close False '关闭打开的工作簿
With Sheet1
i = .Range("A65536").End(xlUp).Row + 1 'sheet1表中A列最后非空单元格下一行号
.Range("A" & i).Resize(UBound(arr), UBound(arr, 2)) = arr '拷贝打开的工作簿sheet1表中所有数据到合并工作簿sheet1的A列最后非空单元格下一单元格
End With
End If
str_Bm = Dir ' 查找下一个目录。
Loop
End Sub

追问

我运行了 的确可以
如果我要选择呢
比如 我想只把1,2复制粘贴到4中
或者把2,3复制粘贴到4中
要怎么做

追答

一个问题要解决N个问题?把DO循环都不要了,用输入框或文本框来解决即可,请不要一个问题解决了问一串。OK?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-27
是不是将多个excel表汇总到一个表,追问

相似回答