亲爱的溢出社区
我想为每张纸(sh)添加一些公式,一些单元格(4,x)。我正在主代码中的for循环中运行sub,它通过每个列运行(a)。我尝试过很多东西但不幸的是我的代码不会运行:
Sub InsertFormula(ByVal sh As Worksheet, ByVal a As Long)
Formel = "=TEXT(" & a & "$1;'TTT')"
sh.Cells(4, a).Formula = Formel
End Sub
编辑:
Sub InsertFormula(ByVal sh As Worksheet, ByVal a As Long)
Formel = "=TEXT(R1C" & a & ",""TTT"")"
sh.Cells(4, a).FormulaR1C1 = Formel
End Sub
非常感谢,完美地工作
答案 0 :(得分:1)
在VBA中,无论您的本地设置如何,都需要使用逗号分隔公式中的函数参数。 (您可以使用.FormulaLocal
绕过它,但我不推荐它,因为它可能无法在其他计算机上运行)
此外,正如Shai Rado所说,您使用数字作为列名。在这种情况下,我会使用R1C1
格式,因此您不必将数字转换为字母,即
Formel = "=TEXT(R1C" & a & ",""TTT"")"
sh.Cells(4, a).FormulaR1C1 = Formel
答案 1 :(得分:1)
这将使用列字母而不是列号。我还改变了使用"
代替'
的公式,并更正了TEXT
公式,因为这两个公式是公式失败的部分原因
Sub InsertFormula(ByVal sh As Worksheet, ByVal Col As String)
Dim Formel As String
Formel = "=TEXT(" & Col & "$1,""TTT"")"
sh.Range(Col & "4").Formula = Formel
End Sub
Sub test()
Call InsertFormula(ActiveSheet, "A")
End Sub
答案 2 :(得分:0)
试试这个来克服你的问题:直接使用Formel而不使用关键字.formula
Sub InsertFormula(ByVal sh As Worksheet, ByVal a As Long)
Formel = "=TEXT(R1C" & a & ",""TTT"")"
sh.Cells(4, a) = Formel
End Sub