在vba代码中转换公式

时间:2016-01-28 15:10:55

标签: excel vba excel-formula drag formulas

我有这个公式

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

和相同的公式只有2个细胞变化

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

有没有办法在列上拖动公式或在VBA代码中对其进行转换?

谢谢

2 个答案:

答案 0 :(得分:0)

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

print range("B10").formula

print range("B10").formulaR1C1

这就是你想要的吗?

如果您想要一个更加复杂的解决方案,将"等翻倍,您可以使用a function I wrote many years ago。不幸的Blogger在我工作的地方设有防火墙,因此我现在无法复制内容。

答案 1 :(得分:0)

我假设你会知道你所针对的范围所在的单元格。所以你可以使用这些变量在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)"