字符串

时间:2015-07-13 04:09:14

标签: string excel vba formula parentheses

我正在尝试填写一系列公式,但似乎无法找到在那里获得括号的正确方法。

例如;

Cells(1,1).Value = "=SUMPRODUCT("

将返回运行时错误,因为(。 我尝试了很多东西,包括;

Cells(1,1).Value = "=SUMPRODUCT" & Chr(40)

Cells(1,1).Formula = "=SUMPRODUCT("

Cells(1,1).Value = "=SUMPRODUCT" & "("

等,但它们似乎都不正确。

我犯了什么错误,如何做到这一点?

编辑:对第一批回复的回应

1)我不是在谈论解决sumproduct,我正在谈论从vba到excel进入公式本身。

2)如果我设置

Cells(1,1).Value = "=SUMPRODUCT"

然后它工作正常:我的公式变为= SUMPRODUCT 但是如果我添加左括号

Cells(1,1).Value = "=SUMPRODUCT("

我得到运行时错误'1004':应用程序定义的错误或对象定义的错误 在运行子时。

EDIT2:似乎必须使用“)”正确关闭sumproduct公式,以免得到运行时错误。我猜我错误地假设Cells.Value只是设置一个不会以任何方式测试的字符串。

2 个答案:

答案 0 :(得分:0)

要回答您的具体问题 - 不需要将括号与字符串文字中的任何其他字符区分开来。大概是你试图将这些字符串与其他东西结合起来以形成更大的表达。毫无疑问,问题在于您尝试使用这些字符串,而不是使用字符串文字的语法。你想做什么以及实际的错误信息是什么?

为了回应您的后续修改,VBA接受=SUMPRODUCT而不是=SUMPRODUCT(作为您可以放入单元格的公式的原因是因为前者可以被解释为用户定义的名称但是后者只是一个不完整的公式。我现在可以看到你如何认为问题在于如何将括号放在一个字符串中,但是你得到的错误代码(1004)意味着它是Excel而不是VBA本身就会引起错误。

此外,如果你想要文字字符串“= SUMPRODUCT(”在单元格中显示为文本,你可以至少以两种方式这样做:

1)更改单元格格式以显示为文本:

Selection.NumberFormat = "@"
Selection.Value = "=SUMPRODUCT("

2)在字符串的开头使用单引号。这与您在电子表格单元格中输入文字字符串的方式相对应:

Selection.Value = "'=SUMPRODUCT("

答案 1 :(得分:0)

我遇到了同样的问题并且很困惑,因为之前一直工作的字符串条目现在遇到了运行时错误,并且可以追溯到在字符串中添加了括号。答案是其中一个单元格在运行宏之前没有格式化为字符串。