我有这个公式
=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代码中对其进行转换?
谢谢
答案 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)"