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

时间:2017-12-06 19:16:27

标签: excel vba

我已编写此代码,以便在特定列中查找超过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

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

如何修复粘贴值行以将值粘贴到它复制的同一个单元格中?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

使用with块来限制重复输入的数量

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