Помогите ламеру с генерацией формул!

Программирование на Visual Basic for Applications
Renat
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 08.08.2006 (Вт) 8:54

Помогите ламеру с генерацией формул!

Сообщение Renat » 08.08.2006 (Вт) 9:01

Привет, мастера!

Помогите ламеру!

У меня макрос генерирует код формулы....
в строку генерируется формула .... но присвоить я ее не могу...

как мне присвоить какой либа ячейке строку так чтобы эта строка считалась как формула....

я делал примерно так:
Cells(1,1).Formula = str
где str = "=СУММ(...бла бла бла)"

вот... ругается на str... но если я уберу в формуле = то все нормально, но воспринимается как строка - str = "СУММ(...бла бла бла)"

Что делать? помогите........

Формула генерируется 100% правильно!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 08.08.2006 (Вт) 9:22

А как ругаецца то? Приведи побольше кода для лучшего понимания. Может быть покатит такой вариант:

Cells(1,1).Formula = "=SUM(....)"
Весь мир матрица, а мы в нем потоки байтов!

Renat
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 08.08.2006 (Вт) 8:54

Сообщение Renat » 08.08.2006 (Вт) 9:35

!Viper! писал(а):А как ругаецца то? Приведи побольше кода для лучшего понимания. Может быть покатит такой вариант:

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


нет не покатит... заранее не знаю сколько надо этих СУММ и прочее + число месяцев висчитывать надо!

там постоянно разные формулы... вот пример как у меня программа сгенерировала формулу:
SUM(Амортизация!$B$8:$B$20)/13*2,2% + (SUM(Амортизация!$B$20:$B$32) + Итоги!$E$6)/13*2,2%

это без равно....

эта строка лежит в str, str типа Variant (пробовал и String)
если я сейчас ее присвою таким методом как я делаю :
Sheets("Итоги").Range(Sheets("Итоги").Cells(11, 5), Sheets("Итоги").Cells(11, 5)).Formula = str

то как строка она присвоится без проблем!
Если я сделаю так:
Sheets("Итоги").Range(Sheets("Итоги").Cells(11, 5), Sheets("Итоги").Cells(11, 5)).Formula = "=" + str
или же заренее в str поставлю знак = то выдает такую ошибку:
Application-defined or object defined error

а вот... если поможет - страница - Итоги, в ячейки которой я присваиваю формулу не активна и я чейка тоже....
но я думаю это не обязательно... доступ то я имею к этой ячейки?! Хотя кто поймет этот VBA :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.08.2006 (Вт) 10:25

Все поймут.
Всё просто и логично.
Потому что нефиг в формуле смешивать разные локали. Либо .formula="=английская формула", либо .formulalocal="=формула на языке текущего пользователя". А у тебя смесь того и другого в одной строке.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

rdva
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16.01.2007 (Вт) 20:36

Сообщение rdva » 23.01.2007 (Вт) 17:43

GSerg, большое тебе человеческое спасибо! :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 92

    TopList