Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Перенести данные с формы на лист с формулами.

Автор parovoz, 21.01.2020, 21:48:23

« назад - далее »

parovoz

Доброго времени суток.
Есть форма  для учета платежей. После заполнения всех полей формы данные переносятся на лист. Все  работает.
Вопрос,как перенести формулы в столбец 7 и 9.
В прилагаемом файле есть пример. В 7 столбец формула не переносится ,а в 9 выдает ошибку (закоментировал)

vikttur

#1
"=.Cells(LastRow + 1, 6).Value / Me.txt_Цена.Value" - это все текст до тех пор, пок не станет в ячейку. А откуда Excel знает, о чем там в VBA думают? Ему неведомо, что такое LastRow и Me.txt_Цена.Value.
Делите текст формулы на фрагменты до и после переменных
"=.Cells(" & LastRow + 1 & ", 6).Value / " & ...
Во второй формуле кавычки. Но передавать кавычки внутри текста следует сдвоенными - "", иначе (один раз ") это ограничитель текста.

parovoz

Доброе утро.
vikttur. благодарю за подсказку . Вот прописал формулу ,но она не отображается в ячейке.
.Cells(LastRow + 1, 7) = .FormulaR1C1 = "=.Cells(" & LastRow + 1 & ", 6).Value / " & LastRow + 1 & ", 4).Value"

Дмитрий Щербаков(The_Prist)

Цитата: parovoz от 22.01.2020, 07:35:19Вот прописал формулу
уверены?
Цитата: parovoz от 22.01.2020, 07:35:19.Cells(LastRow + 1, 7) = .FormulaR1C1 = "=.Cells("
что это и почему Вы считаете, что оно может работать как хотелось?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

parovoz

Дмитрий Щербаков(The_Prist), а как правильно должно быть? Подскажите. ;)

Дмитрий Щербаков(The_Prist)

приплыли...Вы синтаксис вообще изучать не хотите? :) Это же самые азы, пора бы уже их знать.
.Cells(LastRow + 1, 7).FormulaR1C1 = "=" & .Cells(LastRow + 1, 6).Value & "/ " & .Cells(LastRow+ 1, 4).Value
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

parovoz

Дмитрий, перенес Вашу формулу к себе в пример. Но ячейка пуста.

boa

.Cells(LastRow + 1, 7).FormulaR1C1 = "=" & .Cells(LastRow + 1, 6).Address(, , xlR1C1) & "/ " & .Cells(LastRow + 1, 4).Address(, , xlR1C1)
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра


Дмитрий Щербаков(The_Prist)

.Cells(LastRow + 1, 7).Formula = "=" & .Cells(LastRow + 1, 6).Address & "/ " & .Cells(LastRow + 1, 4).Address
А в следующий раз пишите не только то, что формулы не переносятся, но и какие формулы ожидаете в результате. Ответ получили бы уже давно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

parovoz

Все верно. Благодарю за ответ. :) В описании темы мой косяк. :'(

parovoz

Прописал формулу для Статуса оплат.Получилось так. Может будут другие варианты:
.Cells(LastRow + 1, 7).Formula = "=IF(RC[-3]="""",""Не оплачено"",IF(RC[-3]>RC[-4],""Переплата"",IF(RC[-3]=RC[-4],""Оплачено полностью;Оплачено частично"")))"

boa

вы уже определитесь...
или используйте FormulaR1C1, или Formula
а то вы мухам котлеты присваиваете  :o
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра


Яндекс.Метрика Рейтинг@Mail.ru