转换 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)"
我有这个公式
=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)"