尝试将公式插入 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) & ")"