如何将公式值粘贴为文本?

时间:2014-12-02 20:31:04

标签: excel excel-vba excel-formula vba

我在VBA下面使用粘贴数据作为单个单元格B3的值。

Sub pastevalues()
    Dim ws As Worksheet
    Set ws = Sheets("data")
    ws.Range("B3").Copy
    ws.Range("B3").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

我想对列范围做同样的事情。我该怎么做而不是为每个单元格编写相同的公式。我想使用这个公式从B3,C3,D3,E3,F3开始,直到它们对应的最后一个细胞。

2 个答案:

答案 0 :(得分:1)

以下过程将获取当前范围选择中的所有单元格,并将任何公式转换为值。快速,简单,灵活。

Sub PasteValues()
    Dim rngCell As Range
    For Each rngCell In ActiveWindow.RangeSelection
        rngCell.Value = rngCell.Value
    Next rngCell            
End Sub

答案 1 :(得分:0)

您可以使用这种方法来适应您的需求。单元格(行,列)而不是范围(“A1”)

Private Sub SimpleCopyPaste()
    Dim lastCol As Long
    Dim rowNum As Long

    LastCol = Sheets("data").Cells(1, Columns.Count).End(xlToLeft).Column
    rowNum = 3      
    'You can get to the row number several different ways.  
    'Your original question was for B3,C3,D3, so this example just sets Row3
    For col = 2 to lastCol
        Sheets("data").Cells(rowNum, col).Value = Sheets("data").Range("B3").Value
    next col
End Sub