【发布时间】:2013-09-22 03:53:31
【问题描述】:
我正在尝试编写一个 excel 宏,它将我的所有工作表复制到一个工作表中。
所有工作表的布局都相同,每行的每个单元格都有 4 列数据。每张纸都有一个标题。我正在尝试将预过滤的数据从每张表复制到结果表中,每张表中的数据将堆叠在一起。
到目前为止,这就是我所拥有的,并且几乎可以正常工作。
Dim sh As Worksheet
Dim iRows As Long
iRows = 0
For Each sh In ActiveWorkbook.Worksheets
sh.Select
Range("A1").Select
Selection.Offset(1, 0).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Worksheets("Results").Select
Range("A1").Select
Selection.Offset(iRows, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
iRows = Worksheets("Results").UsedRange.Rows.Count
Next sh
我的偏移量不正确,当我复制下一张工作表时,我复制了它复制到上一行的数据。
如果有人可以提供帮助,那就太好了,如果您也可以解释我在这里做错了什么,那太好了,因为我是 excel 和 VBA 的新手。我猜我不明白粘贴是如何正常工作的?
【问题讨论】:
-
我看到你已经选择了答案。快速提问...您可以选择忽略这一点,就像您对上述评论所做的那样:) 顶行或最后一列是否有可能有空单元格?
-
嗨,Siddhart,对不起,我在得到你的答案之前就接受了答案!我将阅读您的链接。我现在忽略的两张额外的床单; 1. 有一个标题和一个空白行 2. 完全空白。
-
不用担心...只要记住如果顶行或最右边的列有任何空白单元格,那么
xlToRight或xlDown将不起作用...