我需要将公式/函数(DOLLAR函数)应用于一系列单元格,然后仅剪切并粘贴值。
我有一个标题行,并使用“查找”转到所需的列。然后,在下面的所有单元格中,我要应用DOLLAR公式。但是,宏末尾的结果需要是这些单元格现在仅包含应用公式后的值,而不包含公式本身(这是因为我将使用工作表来运行邮件合并,所以它不能有公式)。
我尝试运行“操作时”和其他剪切/粘贴方法。我只是没有完成它的技巧:(
Sub ProjectSummaryAdjustment()
Workbooks("Project Summary").Activate
Range("A1",Range("A1").End(xlToRight)).Find("TD Budget Effort").Select
就我所掌握的代码而言。现在,对于下面的所有单元格,我想应用DOLLAR公式,然后将值粘贴到那里。我不介意是否必须剪切并粘贴到第一个空列,然后剪切并粘贴回到原始列。
答案 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