将公式应用于单元格范围,然后粘贴值

时间:2019-05-28 17:45:39

标签: excel vba

我需要将公式/函数(DOLLAR函数)应用于一系列单元格,然后仅剪切并粘贴值。

我有一个标题行,并使用“查找”转到所需的列。然后,在下面的所有单元格中,我要应用DOLLAR公式。但是,宏末尾的结果需要是这些单元格现在仅包含应用公式后的值,而不包含公式本身(这是因为我将使用工作表来运行邮件合并,所以它不能有公式)。

我尝试运行“操作时”和其他剪切/粘贴方法。我只是没有完成它的技巧:(

Sub ProjectSummaryAdjustment()

   Workbooks("Project Summary").Activate

   Range("A1",Range("A1").End(xlToRight)).Find("TD Budget Effort").Select

就我所掌握的代码而言。现在,对于下面的所有单元格,我想应用DOLLAR公式,然后将值粘贴到那里。我不介意是否必须剪切并粘贴到第一个空列,然后剪切并粘贴回到原始列。

1 个答案:

答案 0 :(得分:0)

首先请确保您避免选择和激活。然后,您可以简单地使用评估来进行转换。您确实需要首先将字段设置为文本:

With Workbooks("Project Summary").Worksheets("Sheet1") 'Change to your sheet name
    Dim rng As Range
    Set rng = .Range("A1", .Range("A1").End(xlToRight)).Find("TD Budget Effort")
    'Test to make sure the header was found
    If Not rng Is Nothing Then
        With .Range(.Cells(2, rng.Column), .Cells(.Rows.Count, rng.Column).End(xlUp))
            .NumberFormat = "@"
            .Value = .Parent.Evaluate("index(DOLLAR(" & .Address & "),)")
        End With
    End If
End With