我想使用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
答案 0 :(得分:1)
嗨,当我做这样的事情时,我发现录制宏最容易,然后如果你去查看你的宏并编辑它们,你就可以看到创建的代码了。可以直接复制到你的vba项目
答案 1 :(得分: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
答案 2 :(得分: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