尝试将公式插入 ActiveCell 时出错
Error when trying to insert Formula to an ActiveCell
我正在编写一个小脚本,我想向特定单元格插入一个函数。我尝试了以下代码:
end_time = ActiveCell.Offset(0, 2).Address
time_dif = "=TEXT(" + end_time + "-" + st_time + ";""[ωω]:μμ:δδ"")"
found = False
Workbooks("Template.xlsx").Worksheets(1).Range(ActiveCell.Offset(0, 3).Address).Select
'Var = ActiveCell.formula
ActiveCell.formula = time_dif 'Var
上面代码的最后一行抛出错误:
'Application-Defined or Object-Defined Error'
time_dif 变量包含以下字符串:
"=TEXT($H-$H;"[ωω]:μμ:δδ")"
如局部变量中所见window
我已经尝试了很多不同的方法来使上面的方法起作用,但不幸的是,所有方法都失败了。
它实际起作用的是将完全相同的公式放在另一个单元格中。暂停执行并使用公式激活单元格。将公式放入变量 Var 中,然后将 activecell 移动到正确的位置,并在那里插入变量 Var 值。
Var = ActiveCell.formula 'Break point here / Run one step to take formula
ActiveCell.formula = Var 'Move to correct cell manually / Continue execution
我尝试的另一件事是从公式中删除“=”,它会将公式作为字符串正确地放入单元格中。
对此有什么建议或想法吗?
VBE 使用英文语法。
尝试使用 sub 来获取英文语法,例如:
Sub ert()
InputBox Prompt:=" ", Default:=Selection.Formula
End Sub
因此正确答案将是
"=TEXT(" + end_time + "-" + st_time + ",""[ωω]:μμ:δδ"")"
用“,”替换“;”。
你试过了吗ActiveCell.FormulaR1C1
?
在这里您可以更改为在您的字符串中包含 Chr(34)
,但由于它似乎显示正确,我认为这不是问题所在...
"=TEXT(" & end_time & "-" & st_time & ";" & Chr(34) & "[hh]:mm:ss" & Chr(34) & ")"
我正在编写一个小脚本,我想向特定单元格插入一个函数。我尝试了以下代码:
end_time = ActiveCell.Offset(0, 2).Address
time_dif = "=TEXT(" + end_time + "-" + st_time + ";""[ωω]:μμ:δδ"")"
found = False
Workbooks("Template.xlsx").Worksheets(1).Range(ActiveCell.Offset(0, 3).Address).Select
'Var = ActiveCell.formula
ActiveCell.formula = time_dif 'Var
上面代码的最后一行抛出错误: 'Application-Defined or Object-Defined Error'
time_dif 变量包含以下字符串:
"=TEXT($H-$H;"[ωω]:μμ:δδ")"
如局部变量中所见window
我已经尝试了很多不同的方法来使上面的方法起作用,但不幸的是,所有方法都失败了。
它实际起作用的是将完全相同的公式放在另一个单元格中。暂停执行并使用公式激活单元格。将公式放入变量 Var 中,然后将 activecell 移动到正确的位置,并在那里插入变量 Var 值。
Var = ActiveCell.formula 'Break point here / Run one step to take formula
ActiveCell.formula = Var 'Move to correct cell manually / Continue execution
我尝试的另一件事是从公式中删除“=”,它会将公式作为字符串正确地放入单元格中。
对此有什么建议或想法吗?
VBE 使用英文语法。
尝试使用 sub 来获取英文语法,例如:
Sub ert()
InputBox Prompt:=" ", Default:=Selection.Formula
End Sub
因此正确答案将是
"=TEXT(" + end_time + "-" + st_time + ",""[ωω]:μμ:δδ"")"
用“,”替换“;”。
你试过了吗ActiveCell.FormulaR1C1
?
在这里您可以更改为在您的字符串中包含 Chr(34)
,但由于它似乎显示正确,我认为这不是问题所在...
"=TEXT(" & end_time & "-" & st_time & ";" & Chr(34) & "[hh]:mm:ss" & Chr(34) & ")"