尝试将单元格值设置为string值时出现错误1004

我已经看到了这个问题几次,但还没有find适用于我的情况的解决scheme,所以在这里:

我有一个相当复杂的公式,我想插入一个单元格(复杂,因为它是一个痛苦的屁股跟随)。 我有在variables中设置的组件,并运行子给我在当地人窗口中正确的最终variables名称,但是当我尝试将单元格设置为公式我得到一个'1004:应用程序定义或对象定义的错误' 。 输出应该是这样的:

单元格A1:= BDS(“0”,“pg_segment”,“dir = h”,“number_of_periods = -3”)

然而,它什么都没有返

我已经尝试了以下:设置最后一个variables(cmdstr0)为一个整数 – 这个工程。 作为一个string(“asdf”)也适用。 直接更改值(.value =“string”)的作品。 唯一不起作用的是VBA生成公式本身插入string。 这是代码,谢谢你:

sub populate_revenues() 'field = bloomberg field to look up 'direction = output direction (horizontal/vertical) 'geoverride = override to display only geo or product segments 'periods = numbe of periods to display 'cmdstr = the string to be output that will download the data Dim field As String Dim direction As String Dim geoverride As String Dim periods As String Dim cmdstr3 As String Dim cmdstr2 As String Dim cmdstr1 As String Dim cmdstr0 As Variant Let cmdstr2 = 0 Let field = Worksheets("output").Cells(1, 3).Value Let direction = "Dir = " & Worksheets("output").Cells(1, 5).Value Let geoverride = " product_geo_override = " & Worksheets("output").Cells(1, 7).Value Let periods = " number_of_periods = " & Worksheets("output").Cells(2, 3).Value Let cmdstr1 = "=BDS(" & Chr(34) Let cmdstr3 = Chr(34) & "," & Chr(34) & field & ", " & Chr(34) _ & direction & Chr(34) & ", " & Chr(34) & geoverride & Chr(34) & ", " & Chr(34) & periods & Chr(34) & ")" Let cmdstr0 = cmdstr1 & cmdstr2 & cmdstr3 'Let cmdstr0 = 1 Let Worksheets("Sheet2").Cells(10, 1).Value = cmdstr0 End Sub 

另外,任何人都可以告诉我,如果有更快的方式来格式化为代码比空格键每行四次?

如你所知,你必须双引号双引号。 所以如果你想要:

 =COUNTIF(A1:A10,"apples") 

你必须使用:

 Sub demo() Range("B9").Formula = "=COUNTIF(A1:A10,""apples"")" End Sub 

我个人在这方面遇到了很多麻烦。 我所做的debugging是在公式的开始部分放置一个撇号:

 Sub demo() Range("B9").Formula = "'=COUNTIF(A1:A10,""apples"")" End Sub 

这使我能够“看到”公式的文本并修复问题。

BTW

要创build代码块,请使用代码并使用成对的大括号{}