Excel 使用vba插入公式的结果

Excel 使用vba插入公式的结果,excel,vba,Excel,Vba,我想在p列的一系列单元格中插入一个公式。之后,我希望公式的结果是硬值(因此不是公式而是结果)。现在我将公式放在单元格中,然后自动填充到最后一行,然后复制列和过去的特殊值。我想避免使用select-copy-paste。我想知道是否有人知道怎么做,我以前见过,但现在找不到了 我现在使用的代码 Set frCP = Worksheets("Compliance").Range("P" & FirstRowFill & ":P" & LastRowMatchC) With

我想在p列的一系列单元格中插入一个公式。之后,我希望公式的结果是硬值(因此不是公式而是结果)。现在我将公式放在单元格中,然后自动填充到最后一行,然后复制列和过去的特殊值。我想避免使用select-copy-paste。我想知道是否有人知道怎么做,我以前见过,但现在找不到了

我现在使用的代码

Set frCP = Worksheets("Compliance").Range("P" & FirstRowFill & ":P" & LastRowMatchC)


With Worksheets("Compliance")
    .Range("P" & FirstRow).Offset(1).FormulaArray = "=IF(IFERROR(INDEX(Input!$A$2:A$" & LastRowInput & ",MATCH(1,SEARCH(TRANSPOSE(Input!$A$2:A$" & LastRowInput & "),O" & FirstRowOffset1 & "),0),0),W" & FirstRowOffset1 & ")=0,""ZZ"",IFERROR(INDEX(Input!$A$2:A$" & LastRowInput & ",MATCH(1,SEARCH(TRANSPOSE(Input!$A$2:A$" & LastRowInput & "),O" & FirstRowOffset1 & "),0),0),W" & FirstRowOffset1 & "))"
    .Range("P" & FirstRow).Offset(1).AutoFill Destination:=frCP
End With

Columns("P:P").Select
Range("P88").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

With Worksheets("Compliance")
    .Range("A" & FirstRow).Rows(ActiveCell.Row).AutoFilter
    .AutoFilter.Sort.SortFields.Clear
    .AutoFilter.Sort.SortFields.Add2 Key:= _
    .Range("P" & FirstRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
End With
    With ActiveWorkbook.Worksheets("Compliance").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

您应该能够将整个“选择复制粘贴”块替换为:

columns("P:P").value = columns("P:P").value
我正确地阅读了问题,这也应该有效:

frCP.value = frCP.value

只是想澄清一下,你想要公式的结果在
frCP
范围内,而不是公式?@Zac,是的,没错