2013-07-01 6 views
2

У меня есть особенно ужасное понимание времени, что здесь не так.Excel VBA Formula Format Issue

Я хотел бы ввести следующую формулу с помощью VBA:

Range("C8").Select 
ActiveCell.FormulaR1C1 = "=MODE.SNGL('Data'!D:D)" 

Теперь проблема заключается в том, что VBA вместо выводит его как:

=MODE.SNGL('Data'!D(D) 

Я попытался с помощью Chr (58), а также используя «убежать», но без вишни. Может ли кто-нибудь сказать мне, что я делаю неправильно?

+1

какой код вы использовали? – JosieP

+1

сделал редактирование, чтобы показать больше кода. – Overseer10

+0

Другие ответили, но не сказали, что вы можете использовать только «ActiveCell.Formula =» = MODE.SNGL (Data! D: D) «', пара '' 'избыточна – brettdj

ответ

2

если вы используете FormulaR1C1 вы должны передать ссылку на стиль R1C1 не A1. замените этот код на

Range("C8").Formula = "=MODE.SNGL('Data'!D:D)" 
+0

Спасибо, что решил мою проблему. – Overseer10

3

Используйте вместо этого:

ActiveCell.Formula = "=MODE.SNGL('Data'!D:D)" 

Или, если вам нужно использовать .FormulaR1C1 свойство, которое вы могли бы сделать это следующим образом:

ActiveCell.FormulaR1C1 = "=MODE.SNGL('Data'!C4:C4)" 
+0

+1 для первого на 1 секунду :) – brettdj

+0

Оба ответа были правильными. Спасибо вам также – Overseer10

+0

fyi, так как activecell находился в столбце c. Версия r1c1 должна ссылаться на '' Data '! C [1]: C [1] 'или' Data! C4: C4' для абсолютных ссылок – JosieP