转换 vba 代码中的公式

Transform a formula in vba code

我有这个公式

=IF(A10='[file1.xls]Sheet1'!$D,'[file1.xls]Sheet1'!$F,0)

相同的公式只更改了 2 次单元格

=IF(A11='[file1.xls]Sheet1'!$J,'[file1.xls]Sheet1'!$L,0)

有没有办法将公式拖到列上或在 VBA 代码中转换它?

谢谢

在单元格(例如 B10)中手动输入公式后,按 Ctrl+G 进入调试 window,然后从那里键入:

print range("B10").formula

print range("B10").formulaR1C1

这是你想要的吗?

如果你想要一个更复杂的解决方案,将 " 等加倍,你可以使用 a function I wrote many years ago。 Unfortunalety Blogger 在我工作的地方有防火墙,所以我现在不能复制这里的内容。

我假设您会知道要定位的单元格所在的范围。因此您可以使用这些变量在 VBA

中构建公式
Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Sheets("Sheet1")

ws.Range("B1").Formula = "=IF(" & targetColumn & targetrow & "='[file1.xls]Sheet1'!$" & targetColumn & "$" & targetrow & ",'[file1.xls]Sheet1'!$" & targetColumn & "$" & targetrow & ",0)"