2013-06-06 5 views
0

мне нужно написать в клетках из клеток (1,1) в клетках (501,1) формулаКотировки в VBA с R1C1

=FDSC("-",$C$3,"FG_PRICE(D1)") for line 1 
=FDSC("-",$C$3,"FG_PRICE(D2)") for line 2 
=FDSC("-",$C$3,"FG_PRICE(D3)") for line 3 

Теперь мой код VBA заключается в следующем:

Range(Cells(1, 1), Cells(1 + 500, 1)).FormulaR1C1 = "=FDSC(""" & "-" & """,R1C3,""" & " FG_PRICE(RC[3]) " & """)" 

Я тестировал каждый фрагмент кода, чтобы определить, что последняя часть (FG_PRICE ...) является той, которая не работает! Formule, что написано в Excel является:

=FDSC("-",$C$1,"FG_PRICE(RC[3])") 

Как я могу сделать, чтобы D1, D2, и т.д. ... и не RC [3] ??? Я пробовал несколько вещей, но я не могу найти его!

Большое спасибо за ваше время и вашу помощь!

ответ

0

Использовать chr (34) для представления кавычек, когда вы уже работаете внутри кавычек. Например, изменить forumula выше на следующее:

Range(Cells(1, 1), Cells(1 + 500, 1)).FormulaR1C1 = "=FDSC(" & chr(34) & "-" & chr(34) & ",$C$1," & chr(34) & "FG_PRICE(D1)" & chr(34) & ")" 

Чтобы поместить его в петлю, просто сделайте следующее:

Sub writeFormulas() 

Dim i as Integer 

For i = 0 to 2 
    Range(Cells(1, 1), Cells(1 + 500, 1)).FormulaR1C1 = "=FDSC(" & chr(34) & "-" & chr(34) & ",$C$1," & chr(34) & "FG_PRICE(D" & i+1 & ")" & chr(34) & ")" 
next i 

End Sub 
+0

Проблема в том, что формула, написанная на первенствует (с суб) все еще: = FDSC («-»; $ C $ 1; «FG_PRICE (RC [3])») И я хотел бы иметь = FDSC («-», $ C $ 1, «FG_PRICE (D1)») – user2460449

+0

I отредактировал мой ответ так, что отображение формул в Excel будет таким, как вы указали: = FDSC («-», $ C $ 1, «FG_PRICE (D1)»). В основном вы просто хотите использовать chr (34) вместо любых кавычек (кроме начальных и конечных котировок, которые заключают вашу строку формулы). Если вам нужно, вы можете даже изменить адрес $ C $ 1 (или D1) на переменную. Это удобно, если вы настраиваете формулы в цикле. – rwisch45

+0

ОК спасибо за ваш ответ. Поэтому я должен использовать цикл (я пытался избежать этого, используя: .formulaR1C1). – user2460449

Смежные вопросы