首页 文章

VBA使用VBA在循环中复制和粘贴随机单元格

提问于
浏览
2

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

例如,我想将sheet2中的单元格A2复制到sheet1中的单元格A1,将sheet2中的单元格B2复制到sheet1中的单元格B1 . 然后是Sheet2中的A3到sheet1中的单元格A1,单元格B3中的单元格B1中的单元格B1 . 我想这样做直到最后一排 .

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

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

3 回答

  • 1

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

    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
    
  • 1

    嗨,当我做这样的事情时,我发现记录一个宏最简单,那么如果你去查看你的宏并编辑它们你可以看到创建的代码 . 可以直接复制到您的vba项目中

  • 1

    好吧,我想你可能会想要这些内容 .

    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
    

相关问题