Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вставка формулы в Excel / 13 сообщений из 13, страница 1 из 1
15.11.2006, 10:13:29
    #34129210
Evgeshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
Почему на работает след макрос:

Код: plaintext
1.
TotalFormula = "=R[-30]C+R[-15]C+R[-7]C"
Application.ActiveWorkbook.ActiveSheet.Cells(I, BegColToPaste +  4 ).FormulaR1C1 = TotalFormula
...
Рейтинг: 0 / 0
15.11.2006, 10:45:43
    #34129326
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
может ссылка на несуществующий диапазон? например R[-30] дает не положительное число..
...
Рейтинг: 0 / 0
15.11.2006, 11:00:04
    #34129391
Evgeshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
vbaproможет ссылка на несуществующий диапазон? например R[-30] дает не положительное число..

Положительное число дает:

Код: plaintext
Application.ActiveWorkbook.ActiveSheet.Cells( 38 ,  5 ).FormulaR1C1 = TotalFormula
...
Рейтинг: 0 / 0
15.11.2006, 11:22:22
    #34129476
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
Код: plaintext
1.
TotalFormula = "=R[-30]C+R[-15]C+R[-7]C"
Application.ActiveWorkbook.ActiveSheet.Cells( 31 ,  31 ).FormulaR1C1 = TotalFormula
проверил работает
I, BegColToPaste - правильные цифры?
Какую ошибку выдаёт?
...
Рейтинг: 0 / 0
15.11.2006, 11:27:03
    #34129498
Evgeshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
vkodor
Код: plaintext
1.
TotalFormula = "=R[-30]C+R[-15]C+R[-7]C"
Application.ActiveWorkbook.ActiveSheet.Cells( 31 ,  31 ).FormulaR1C1 = TotalFormula
проверил работает
I, BegColToPaste - правильные цифры?
Какую ошибку выдаёт?


Спасибо что откликнулись ! Уже заработало, я видимо где-то неправильно переменную написал, а VBA глотает все подряд переменные даже без обновления. Перебил по всей процедуре переменную TotalFormula и все заработало. Выдавало Object Defined Error
...
Рейтинг: 0 / 0
15.11.2006, 11:43:04
    #34129573
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
А мой совет такой
Worksheets("Sheet1").range("A31").value= Worksheets("Sheet1").range("B31").value+Worksheets("Sheet1").range("C31").value-Worksheets("Sheet1").range("D31").value
Но если честно если ты используеш 65536 строк то итоговую сумму вставь в начале таблицы потому что лучше всего так
...
Рейтинг: 0 / 0
15.11.2006, 12:07:13
    #34129683
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
Ser Artur - прав
нет смысла загружать лист формулами (если знаешь VBA)
Код: plaintext
1.
2.
With Worksheets("Sheet1")
     .Range("A31").Value = .Range("B31").Value + .Range("C31").Value - .Range("D31").Value
End With
Код: plaintext
1.
2.
With ActiveWorkbook.ActiveSheet
    .Cells( 31 ,  1 ).Value = .Range( 31 ,  2 ).Value + .Range( 31 ,  3 ).Value - .Range( 31 ,  4 ).Value
End With
практика показывает использование "итоговой суммы" в начале табл избавляет от многих проблем.
...
Рейтинг: 0 / 0
15.11.2006, 12:35:06
    #34129792
Evgeshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
Мне нужно туда забить именно формулу, которая у меня формируется динамически в цикле!
...
Рейтинг: 0 / 0
15.11.2006, 14:27:42
    #34130354
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
vkodorSer Artur - прав
нет смысла загружать лист формулами (если знаешь VBA)

Категорически не согласен. Вдруг в формуле ошибка? Всегда можно посмотреть каким образом получилось то или иное значение. А иногда, если человек не в теме или первый раз видит таблицу, понять откуда взялось посчитанное в VBA значение и его смысл очень трудно. А так, смотришь формулу и соображаешь.
...
Рейтинг: 0 / 0
15.11.2006, 14:38:02
    #34130409
Evgeshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
А если значения в листе корректировать надо?!! :)
...
Рейтинг: 0 / 0
15.11.2006, 15:21:48
    #34130616
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
k-nikeКатегорически не согласен. Вдруг в формуле ошибка? Всегда можно посмотреть каким образом получилось то или иное значение. А иногда, если человек не в теме или первый раз видит таблицу, понять откуда взялось посчитанное в VBA значение и его смысл очень трудно. А так, смотришь формулу и соображаешь.

Формулы, которые прописывают в VBA, изначально пишут без ошибок (точнее при тестировании все ошибки выявляются), человека не в теме надо гнать в шею (чтоб дров не наломал), а на больших таблицах (размер файла, и вероятность крякнуться файлу) VBA однозначно оправдывается, и еще, если данные в таблицу постоянно добавляются (новые строки), соответственно каждый раз растягивать формулы, хм..., я бы не стал.
...
Рейтинг: 0 / 0
15.11.2006, 18:15:46
    #34131302
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
Evgeshkaа VBA глотает все подряд переменные даже без обновления.А ты пиши в начале модуля волшебное слово Option Explicit и волосы будут шелковистыми
...
Рейтинг: 0 / 0
15.11.2006, 23:48:11
    #34131797
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка формулы в Excel
EvgeshkaА если значения в листе корректировать надо?!! :)
Если вы мне, то что мешает подправить формулу или вообще вместо нее тупо вбить нужное значение?
vkodorФормулы, которые прописывают в VBA, изначально пишут без ошибок (точнее при тестировании все ошибки выявляются)
Согласен. Только тестирование может выявить не все ошибки. Например, деление на ноль.
vkodorчеловека не в теме надо гнать в шею (чтоб дров не наломал)
Тут как вы заблуждаетесь. Человек не в теме может быть новым сотрудником, которому нужно что-то объяснять и показывать. Человек не в теме может быть другим форумчанином, который решил помочь другому форумчанину разобраться в его проблеме. Например, скачайте этот файл и попробуйте понять откуда берутся первый цифры на листе Report в столбцах E и F. Я хоть и был "основоположником" данной проги за минуту не смог этого понять, поэтому просто забил.
А еще формулы - это удобство редактирования. Есть к примеру счет, в котором есть кол-ва, цена, сумма и общая сумма. Мне надо побыстрому подправить цену или кол-во. В варианте с формулами у меня все сразу пересчитается, с макросами - нет, либо нужно писать еще один макрос, который будет что-то пересчитывать при изменении данных на листе. Но это бестолковая работа.
vkodorа на больших таблицах (размер файла, и вероятность крякнуться файлу) VBA однозначно оправдывается, и еще, если данные в таблицу постоянно добавляются (новые строки), соответственно каждый раз растягивать формулы, хм..., я бы не стал.
Согласен. У всего есть свои плюсы и минусы. Поэтому нужно каждый раз с умом подходить к выбору того как будет выглядеть итоговой отчет. Я ж не утверждаю, что вариант с формулами самый лучший.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вставка формулы в Excel / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]