在vba代码中转换一个公式

我有这个公式

=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代码中转换公式?

谢谢

我假设你会知道你所在的单元格的范围。所以你可以使用这些variables在VBA中build立你的公式

 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)" 

一旦你在单元格中手动input公式(例如B10),请按Ctrl + G进入debugging窗口,并从那里键入:

 print range("B10").formula 

要么

 print range("B10").formulaR1C1 

那是你要的吗 ?

如果你想要一个更复杂的解决scheme,使"等”,你可以使用我写了很多年前的函数 。不幸的是Blogger的工作是在我工作的防火墙,所以我现在不能复制这里的内容。