我已經看到了這個問題了幾次,但都沒有找到一個解決方案,適用於我的情況的字符串值,所以這裏有雲:錯誤1004當試圖單元格的值設置爲
我有一個相當複雜的公式,我想插入一個單元格(複雜,因爲它是一個痛苦的追屁股)。我在變量中設置了組件,並且在本地窗口中運行子程序給了我正確的最終變量名稱,但是當我嘗試將單元格設置爲公式時,我得到'1004:應用程序定義或對象定義的錯誤' 。輸出應該是這樣的:
細胞A1:= BDS( 「0」, 「pg_segment」, 「DIR = H」, 「期數= -3」)
然而它沒有返回。
我試過以下內容:將最終變量(cmdstr0)設置爲一個整數 - 這有效。作爲一個字符串(「asdf」)也適用。直接更改值(.value =「string」)的作用。唯一不起作用的是VBA構建公式本身以插入到字符串中。下面的代碼,並感謝您:
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
而且,任何人都可以請告訴我,如果有作爲代碼要比打空格鍵每一行四次來格式化一個更快的方法?
謝謝!我完全忘記了雙引號的事情。還有一個問題:爲什麼Chr(34)(「)不工作? – smpat04 2014-08-27 16:53:02
我希望我能給你一個很好的答案。我發現嵌入雙引號的整個業務非常令人沮喪。 – 2014-08-27 16:55:09
@ smpat04可能語法錯誤在您的結尾。我沒有測試過你的代碼,但我注意到這樣簡單的事情將使用Chr(34):'ActiveCell.Value「=」&Chr(34)&「hello」&Chr(34)' – 2014-08-27 17:12:33