Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将公式转换为字符串_Vba - Fatal编程技术网

Vba 将公式转换为字符串

Vba 将公式转换为字符串,vba,Vba,我在函数中输入了以下公式 dim minfee, feetier3, feetier4, feetier5, bpspread1, bpsread2, bpspread3 as double call insformulaincell("=IF(K2 = 100, ""#NA"", IF(K2 <" & minfee & "," & feetier3 & ",IF(K2<" & feetier4 & ",K2+ " & bps

我在函数中输入了以下公式

dim minfee, feetier3, feetier4, feetier5, bpspread1, bpsread2, bpspread3 as double

call insformulaincell("=IF(K2 = 100, ""#NA"", IF(K2 <" & minfee & "," & feetier3 & ",IF(K2<" & feetier4 & ",K2+ " & bpspread1 & ",IF(K2<" & feetier5 & ",K2+ " & bpspread2 & ",K2+ " & bpspread3 & "))))")

'all the function does is paste the formula into a cell 
'How would I format the formula so that it can be stored as a single string?
'Ex:

dim sFormula as string 

sformula = ""=IF(K2 = 100, ""#NA"", IF(K2 <" & minfee & "," & feetier3 & ",IF(K2<" & feetier4 & ",K2+ " & bpspread1 & ",IF(K2<" & feetier5 & ",K2+ " & bpspread2 & ",K2+ " & bpspread3 & "))))""

call insformulaincell(sFormula)
dim minfee、feetier3、feetier4、feetier5、bpspread1、bpsread2、bpspread3为双精度
调用insformulaincell(“=IF(K2=100,”#NA“),在VBA
中,IF(K2”
用作字符串文本的分隔符,如下所示:

Dim foo As String
foo = "some string"
如果字符串文字需要包含
双引号,则需要通过将它们在字符串分隔符之间加倍来转义它们:

打印上述内容将产生
“一些字符串”
,包括双引号

所以你确实需要

在VBA
中,“
用作字符串文本的分隔符,如下所示:

Dim foo As String
foo = "some string"
如果字符串文字需要包含
双引号,则需要通过将它们在字符串分隔符之间加倍来转义它们:

打印上述内容将产生
“一些字符串”
,包括双引号

所以你确实需要


删除额外的前导和尾随引号。我尝试过这样做,但没有解决主要问题,即变量名不再引用变量值。删除额外的前导和尾随引号。我尝试过这样做,但没有解决主要问题,即变量名不再引用变量值
sformula = "=IF(K2 = 100, ""#NA"", IF(K2 <" & minfee & "," & feetier3 & ",IF(K2<" & feetier4 & ",K2+ " & bpspread1 & ",IF(K2<" & feetier5 & ",K2+ " & bpspread2 & ",K2+ " & bpspread3 & "))))"
sFormula = StringFormat("=IF(K2=100, ""#NA"", IF(K2<{0},{1},IF(K2<{2},K2+{3},IF(K2<{4},K2+{5},K2+{6}", _
    minfee, feetier3, feetier4, bpspread1, feetier5, bpspread2, bpspread3)