将单元格的公式结果作为值复制到同一单元格中

我已经写了这个代码来查找特定列中的值超过0:

Private Sub CommandButton1_Click() a = Worksheets("Sheet1").Cells(Rows.Count, 3).End(xlUp).Row For i = 4 To a If Worksheets("sheet1").Cells(i, 3).Value > 0 Then Worksheets("sheet1").Cells(i, 3).Copy Worksheets("sheet1").Cells(1, 3).PasteSpecial xlPasteValues End If Next Application.CutCopyMode = False End Sub 

我的问题是在复制和粘贴值。 我需要复制单元格并粘贴在同一个单元格中的值。 例如,如果macros在单元格c5中读取的总数大于0,则它复制单元格c5并将其粘贴到c5中。

如何修复粘贴值行,将其粘贴到复制的单元格中的值?

而不是使用复制/粘贴,只是这样做:

 Worksheets("sheet1").Cells(i, 3).Value = Worksheets("sheet1").Cells(i, 3).Value 

使用with block来限制重复键入的数量

 Private Sub CommandButton1_Click() With Worksheets("Sheet1") a = .Cells(Rows.Count, 3).End(xlUp).Row For i = 4 To a With .Cells(i, 3) If .Value > 0 Then .Value = .Value End With Next End With End Sub