【发布时间】:2014-07-17 16:26:12
【问题描述】:
有没有人知道我可以如何解决以下问题。我在工作表 1 中有一个表格,我想将其复制到工作表 2。但是,复制只会发生在工作表 1 中第 3 列第 11 到 32 行不为空的单元格中。 如果说 C11 不为空,则 C11 将与 E11、F11、H11、I11 和 J11 一起复制。然后代码检查 C12 是否已填充并执行相同的操作,依此类推。
复制的单元格放置在 sheet2 起始行和第 15 列中。我有以下代码,效果很好。然而,它复制了在 sheet2 中显然没有意义的公式,因此,值是无意义的:
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
如何调整代码以便只复制值?
非常感谢您的支持。
【问题讨论】:
-
.Cells(y, x)表示 VBA 中的Range,Range有一个.PasteSpecial方法。 (这里是 MSDN 链接:msdn.microsoft.com/en-us/library/office/…)您可能在这里寻找的选项是xlPasteValues -
这个问题似乎离题了,因为它可以使用宏记录器和仅复制/粘贴值选项来回答。