【问题标题】:VBA Copy and Paste to new WorksheetVBA 复制并粘贴到新工作表
【发布时间】:2014-07-31 13:29:25
【问题描述】:

以下代码基本上按照在 Sheet2 中的相同顺序从 Sheet1 复制和粘贴到 Sheet2。我需要它将值粘贴到 Sheet2 上的同一列中,这样我就可以对所有值进行排序。我似乎无法弄清楚如何让它将所有内容粘贴到 Sheet2 上的同一列。谢谢。

子信息共享()

Dim lastrowDB As Long, lastrow As Long
Dim array1, array2, i As Integer

With Sheets("Sheet1")
    lastrowDB = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
End With

array1 = Array("C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N")
array2 = Array("C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N")

For i = LBound(array1) To UBound(array1)
    With Sheets("Sheet1")
        lastrow = Application.Max(3, .Cells(.Rows.Count, array1(i)).End(xlUp).Row)
        .Range(.Cells(3, array1(i)), .Cells(lastrow, array1(i))).Copy
        Sheets("Sheet2").Range(array2(i) & lastrowDB).PasteSpecial xlPasteValues
    End With

Next
Application.CutCopyMode = False

结束子

【问题讨论】:

  • 您要将数据粘贴到哪里?你有确切的位置吗?
  • 它可以去任何我想粘贴到 A1 的地方,所以 Sheet2 中的所有值都在 A 列中。
  • 嗯...您的代码现在复制数据并粘贴到同一列中。所以我真的不知道你的问题是什么。
  • 它计算 A 列中的值,具体取决于有多少值,它将数据从 Sheet1 范围(C3:N3)复制到行(取决于第一个计数)到 Sheet2。
  • 我需要将范围 (C3:N3) 中的所有值粘贴到 Sheet2 的 A 列中。所以就像 Sheet1(C3:C17) 到 Sheet2(A1:A15) 然后 Sheet1(D3:D17) 到 Sheet2(A16:A30) 等等。

标签: vba excel


【解决方案1】:

你的任务很简单,看下面:

Dim i As Byte, y As Byte, x As Integer

For i = 3 To 5 'i is a number of column counts from left to right in Sheet1 to be copied

    For y = 3 To 17 'y is a number of row in Sheet1 to be copied

        x = x + 1 'x is a number of row in Sheet2 to be pasted

        Sheets("Sheet2").Cells(x, 1).Value = Sheets("Sheet1").Cells(y, i).Value

    Next y

Next i

我为您的应对问题制作了一个嵌套循环。它可以根据需要进行任意多列(调整 i 变量),通过所需行数(调整 y 变量)并将所有内容粘贴到 Sheet2 中的 A 列(一个一、使用a变量作为行号。

如果您需要更多内容,请随时在评论中提问。

【讨论】:

  • 完美运行!感谢您的帮助。
  • 很高兴听到这个消息。请将此帖子标记为anwser。这可能有助于其他人找到类似问题的解决方案。
【解决方案2】:

如果你想翻转值,我认为你不能使用复制/粘贴

不过,您可以只设置每个单元格的 value 属性。 您需要跟踪目标工作表中 A 列中的当前行。 然后循环遍历您正在处理的列的行,并从源单元格的 value 属性中设置 value 属性。

【讨论】:

  • 所以我不能从 Sheet1 C 列复制值并粘贴到 Sheet2 A 列,然后从 Sheet1 D 列复制值并粘贴到 sheet2 中 A 列的末尾?
  • 如果您要粘贴列,可以。如果您要获取行并粘贴到列中,则不会。
  • 如果你使用转置是可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多