excel - 使用 vba 插入公式的结果
问题描述
我想在 P 列的一系列单元格中插入一个公式。之后我希望公式的结果是一个硬值(所以不是公式,而是结果)。目前我将公式放在单元格中,然后自动填充到最后一行,然后复制列和过去的特殊。我想避免使用选择-复制-粘贴。我想知道是否有人知道如何做到这一点,我以前看过但找不到了。
我现在使用的代码
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
解决方案
您应该能够将整个 select-copy-paste 块替换为:
columns("P:P").value = columns("P:P").value
我正在正确阅读问题,这也应该有效:
frCP.value = frCP.value
推荐阅读
- node.js - 使用 Node.js 从 Google Cloud Platform 存储桶中获取文件夹列表
- c# - Visual Studio 19. 不要添加 webasm 服务
- angular - 使用 @Output 从子组件更改父变量
- windows - 创建 VBS,使用当前用户的用户名、计算机名称和多个 IP 地址创建一个消息框(有线/无线/vpn)
- java - 正则表达式匹配除两个括号之间的内容之外的所有内容
- heroku - 在 Heroku 上使用 Travis CI 运行测试
- ansible - 带有 winrm 的 Ansible 只能以 root 身份工作?
- javascript - localStorage 可以将值分配给与其内置方法同名的键,如何对我的对象执行相同操作?
- python - 正则表达式开头的可选匹配组始终为空
- wordpress - 将模板管理的数据保存到插件以进行模板替换