VBA将单元格的值从一个表格复制到另一个表格

有没有人有一个线索,我可以解决以下问题。 我在工作表1中有一张表格,我想将其复制到工作表2中。但是,复制只会发生在sheet1中第3行11到32不为空的单元格中。 如果说C11不是空的,C11将被复制在一起E11,F11,H11,I11和J11。 然后代码检查C12是否被填充,并执行相同的操作。

复制的单元格放置在sheet2的第15行起始行和第15列中。下面的代码非常适用。 然而,它复制了表2中明显没有意义的公式,因此,值是无意义的:

Private Sub CommandButton1_Click() Dim i As Integer Dim a As Integer a = 15 For i = 11 To 32 If Worksheets(1).Cells(i, 3) <> "" Then Worksheets(1).Cells(i, 3).Copy Worksheets(2).Cells(a, 15) Worksheets(1).Cells(i, 5).Copy Worksheets(2).Cells(a, 17) Worksheets(1).Cells(i, 6).Copy Worksheets(2).Cells(a, 18) Worksheets(1).Cells(i, 7).Copy Worksheets(2).Cells(a, 19) Worksheets(1).Cells(i, 8).Copy Worksheets(2).Cells(a, 20) Worksheets(1).Cells(i, 9).Copy Worksheets(2).Cells(a, 21) a = a + 1 End If Next i 

如何调整代码以仅复制值?

非常感谢您的支持。

所以,只需对代码进行最less的更改就可以做到这一点:

 Private Sub CommandButton1_Click() Dim i As Integer Dim a As Integer a = 15 For i = 11 To 32 If Worksheets(1).Cells(i, 3) <> "" Then Worksheets(2).Cells(a, 15) = Worksheets(1).Cells(i, 3).Value Worksheets(2).Cells(a, 17) = Worksheets(1).Cells(i, 5).Value Worksheets(2).Cells(a, 18) = Worksheets(1).Cells(i, 6).Value Worksheets(2).Cells(a, 19) = Worksheets(1).Cells(i, 7).Value Worksheets(2).Cells(a, 20) = Worksheets(1).Cells(i, 8).Value Worksheets(2).Cells(a, 21) = Worksheets(1).Cells(i, 9).Value a = a + 1 End If Next i 
  Dim i As Integer Dim rw As Range, rwD as Range Set rwD = Worksheets(2).Rows(15) For i = 11 To 32 Set rw = Worksheets(1).Rows(i) If rw.Cells(3) <> "" Then rwD.Cells(15).Value = rw.Cells(3).Value rwD.Cells(17).Value = rw.Cells(5).Value rwD.Cells(18).Value = rw.Cells(6).Value rwD.Cells(19).Value = rw.Cells(7).Value rwD.Cells(20).Value = rw.Cells(8).Value rwD.Cells(21).Value = rw.Cells(9).Value Set rwD = rwD.Offset(1, 0) End If Next i