【问题标题】:VBA Copy and Paste random cells in a loop using VBAVBA 使用 VBA 在循环中复制和粘贴随机单元格
【发布时间】:2018-05-31 21:19:11
【问题描述】:

我想用 VBA 将一个工作表中的单元格复制并粘贴到 VBA 中的另一个工作表中。

例如,我想将 sheet2 中的单元格 A2 复制到 sheet1 中的单元格 A1,将 sheet2 中的单元格 B2 复制到 sheet1 中的单元格 B1。然后sheet2中的A3到sheet1中的单元格A1,单元格B3到sheet1中的单元格B1。我会喜欢这样做,直到最后一行。

我试过下面的代码,但是我的数据集太大了。还有另一种替代方法吗?

'Worksheets("Sheet1").Range("C28").Value = Worksheets("Sheet2").Range("B2").Value

【问题讨论】:

  • 所以你重写了值?
  • 是的,我正在覆盖值。
  • 您的问题到底是什么?您发布了一行有效的代码。也许你应该阅读How to Ask。
  • 您的标题表明您要在循环中粘贴随机单元格?
  • 是的,那是我的错。我说随机是因为大多数论坛只复制和粘贴指定范围。我希望能够从一个工作表中获取我想要的任何单元格并将其粘贴到另一个工作表中我想要的任何单元格中。

标签: vba excel


【解决方案1】:

嗨,当我做这样的事情时,我发现录制宏最容易,然后如果你去查看你的宏并编辑它们,你可以看到创建的代码。可以直接复制到您的 vba 项目中

【讨论】:

  • 嗨。是的,我厌倦了这样做。我遇到的唯一问题是宏没有循环。也许我做错了,我得再试一次。
【解决方案2】:

好的,我想你可能想要一些类似的东西。

Sub x()

Dim r As Long

With Sheet2
    For r = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        Sheet1.Range("A1").Resize(, 2).Value = .Cells(r, 1).Resize(, 2).Value
        'presumably do something else?
    Next r
End With

End Sub

【讨论】:

  • 我会试试这个。你在哪里引用工作表?我怎么知道我正在从哪个工作表中提取以及我正在拉入哪个工作表。感谢您的帮助!
  • 它使用工作表代码名称,所以如果这不起作用,只需用代码中的常用名称替换即可。
【解决方案3】:

您好,您可以使用随机数来生成行号和列号

Sub test1()

 Dim LastRow, Lastcol As Long
 Dim wb As Workbook
 Dim ws1, ws2 As Worksheets


    Set wb = ThisWorkbook

    ' Sheet name where data is present
    Set ws1 = wb.Worksheets("OriginalSheet")
    ' Sheet name where data to be copied
    Set ws2 = wb.Worksheets("CopySheet")



    With ws1
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        Lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column

    End With



For i = 1 To Lastcol
    For j = 1 To LastRow

 ' Random number generation

 ' To create a random integer number between two values (range), you can use the following formula:

' Int ((upperbound - lowerbound + 1) * Rnd + lowerbound)

randrow = Int((50 - 10 + 1) * Rnd + 10)

randcol = Int((5 - 2 + 1) * Rnd + 2)

ws2.Cells(randrow, randcol).Value = ws1.Cells(j, i).Value


    Next
Next


End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2019-05-20
    • 2015-12-02
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多