插入VBA到公式格式?

真正快速问题如何在Excel公式中格式化VBA。 当你插入一个公式到Excel中,你想插入一个variables从VBBA例如,如果B是一个string,你会使用" & b & "是正确的格式? 为了说明这个问题,我有下面的代码,并尝试使用格式化,以及…我不知道为什么它不会工作,我得到一个(编译错误:预期:声明结束)。 谁能告诉我我要去哪里?

 Dim HrsSTD As String Dim HrsSAT As String Dim HrsSUN As String Dim HrsSTWN As String Dim sdFormula HrsSTD = ActiveCell.Address Selection.Offset(0, 1).Select HrsSAT = ActiveCell.Address Selection.Offset(0, 1).Select HrsSUN = ActiveCell.Address Selection.Offset(0, 1).Select HrsSTWN = ActiveCell.Address sdFormula = "=IF((" & Range(NamedRange).Cells(2, 1).Address & _ "=""Please add a title"",0,VLOOKUP((" & Range(NamedRange).Cells(2, 1).Address & _ ",'Tables (H)'!$H$2:$J$6,2,FALSE)* _ " & HrsSTD & "+VLOOKUP(" & Range(NamedRange).Cells(2, 1).Address & _ ",'Tables (H)'!$H$2:$J$6,2,FALSE)* _ " & HrsSAT & "*1.25+VLOOKUP((" & Range(NamedRange).Cells(2, 1).Address & _ ",'Tables (H)'!$H$2:$J$6,2,FALSE)*" & HrsSUN & "* _ 1.5+VLOOKUP((" & Range(NamedRange).Cells(2, 1).Address & _ ",'Tables (H)'!$H$2:$J$6,2,FALSE)*" & HrsSTWN & "*0.75)" 

我将input到Excel中的代码将是:但是我想将A13和I16(即所有相对引用)更改为VBA中的variables

 =IF(A13="Please add a title",0,VLOOKUP(A13,'Tables (H)'!$H$2:$J$6,2,FALSE)*F16+VLOOKUP(A13,'Tables (H)'!$H$2:$J$6,2,FALSE)*G16*1.25+VLOOKUP(A13,'Tables (H)'!$H$2:$J$6,2,FALSE)*H16*1.5+VLOOKUP(A13,'Tables (H)'!$H$2:$J$6,2,FALSE)*I16*0.75) 

这是你正在尝试? 我也看到你没有采取我以前的答案的build议。

还有一个小费。 打破你在简单的部分代码。 这很容易理解。

你的代码存在问题

 ",'Tables (H)'!$H$2:$J$6,2,FALSE)* _ " & HrsSAT & "*1.25+VLOOKUP((" & Range(NamedRange).Cells(2, 1).Address & _ 

你不能这样写。 第一行没有结尾" ,你不能把它推到下一行。

这是你正在尝试?

 Dim sFormula As String Dim sAddr As String sAddr = Range(NamedRange).Cells(2, 1).Address sFormula = "=IF(" & sAddr & _ "=""Please add a title"",0,VLOOKUP(" & _ sAddr & ",'Tables (H)'!$H$2:$J$6,2,FALSE)*F16+VLOOKUP(" & _ sAddr & ",'Tables (H)'!$H$2:$J$6,2,FALSE)*G16*1.25+VLOOKUP(" & _ ",'Tables (H)'!$H$2:$J$6,2,FALSE)*H16*1.5+VLOOKUP(" & _ sAddr & ",'Tables (H)'!$H$2:$J$6,2,FALSE)*I16*0.75)"