如何将此Excel公式转换为VBA代码?

如何将此Excel公式转换为VBA代码?,vba,formula,Vba,Formula,“我在Excel工作表中的单元格A6中使用此公式。它工作得很好 =如果(O6=“手工”、“手工输入”、如果(O6=“喷射”、R6、如果(O6=“可口可乐”、“红牛”、如果(O6=“运费”、“物流”、如果(O6=“税收”、“税收”、如果(O6=“转移成本”、“转移成本交易”、IFEROR)(如果(查找(“投资”),R6,1)>=1、MID(R6,查找(“投资”),R6,1)、10、“”、“”) 现在,我的问题是:如何将其转换为VBA?我试着录了下来,代码如下: ActiveCell.Formula

“我在Excel工作表中的单元格A6中使用此公式。它工作得很好

=如果(O6=“手工”、“手工输入”、如果(O6=“喷射”、R6、如果(O6=“可口可乐”、“红牛”、如果(O6=“运费”、“物流”、如果(O6=“税收”、“税收”、如果(O6=“转移成本”、“转移成本交易”、IFEROR)(如果(查找(“投资”),R6,1)>=1、MID(R6,查找(“投资”),R6,1)、10、“”、“”)

现在,我的问题是:如何将其转换为VBA?我试着录了下来,代码如下:

ActiveCell.FormulaR1C1=_ “=如果(RC[14]=”手“,”手工输入JE“,”如果(RC[14]=”喷气机“,”RC[17],”如果(RC[14]=”可乐“,”红牛“,”如果(RC[14]=”运费“,”物流“,”如果(RC[14]=”税“,”如果(RC[14]=”转移成本“,”转移成本交易“,”IFERROR(如果(查找(“库存”),RC[17],1”)>=1,MID_ “”、“”)”、“)”))”

当我运行这个程序时,我收到运行时错误1004:应用程序定义的或对象定义的错误。所以我将其更改为类似的内容,除了find选项外,这与上面的公式相同,一切都正常运行。 ![VBA用于上述公式][有关查找的任何帮助?]
End sub.如何在上面的VBA代码中获得fine选项。`

您需要转义引号

ActiveCell.Formula = "=IF(O6=""Hand"",""Manual Entry"",IF(O6=""JET"",R6,IF(O6=""COKE"",""Red Bull"",IF(O6=""Freight"",""Logistics"",IF(O6=""TAX"",""Tax"",IF(O6=""TRANSFER COST"",""Transfer Cost Transactions"",IFERROR(IF(FIND(""INV#"",R6,1)>=1,MID(R6,FIND(""INV#"",R6,1),10),""""),"""")))))))"
并使用
.Formula
,因为您使用的特定单元格名称与当前选定的单元格不相关。

这对我很有用:

Range("L6").Formula = "=IF(O6=""Hand"",""Manual Entry"",IF(O6=""JET"",R6,IF(O6=""COKE"",""Red Bull"",IF(O6=""Freight"",""Logistics"",IF(O6=""TAX"",""Tax"",IF(O6=""TRANSFER COST"",""Transfer Cost Transactions"",IFERROR(IF(FIND(""INV#"",R6,1)>=1,MID(R6,FIND(""INV#"",R6,1),10),""""),"""")))))))"

这只是您原来的Excel公式,但上面的
字符转义为

仍然存在运行时错误。因此我不得不改用其他方式,如