Добрый день. Нужна помощь в правильном написании формулы, в которой одно из значений копируется из одной и той же ячейки определенного листа одной книги, а макрос вставит в таблицу.Описал коряво, но как то не приходит в голову изобразить... В приложении есть файл примера. Суть работы такова... Создается инвойс, далее запускается макрос (нажатием кнопки 'в таблицу') и формируется строка со значениями из определенных ячеек (L2:Q2), далее она копируется в сводную таблицу на листе balans. Но еще необходимо, чтобы в ячейку I5 вставилось значение ячейки Q4 с листа с названием соответствующим значению ячейки A5 (1,2,3... и т.д.). На данный момент для теста реализована вставка значения ячейки B5: Module8 Range("I5").Select ActiveCell.FormulaR1C1 = "=R[0]C[-7]+7" т.е. вместо R[0]C[-7] надо вставить значение ячейки Q4 из листа 1 (но листы меняются! названия листов будет соответствовать значению ячейки А5). В итоге в ячейке I5 должна быть формула - сумма значения Q4 из определенного листа и 7. Необходима именно формула, чтобы при изменении значения на листе, значения в таблице обновлялось.
К сожалению размер файла слишком большой, порезал что мог и архивировал. Надеюсь, если мою проблему решить можно, то того что осталось хватит...
Добрый день. Нужна помощь в правильном написании формулы, в которой одно из значений копируется из одной и той же ячейки определенного листа одной книги, а макрос вставит в таблицу.Описал коряво, но как то не приходит в голову изобразить... В приложении есть файл примера. Суть работы такова... Создается инвойс, далее запускается макрос (нажатием кнопки 'в таблицу') и формируется строка со значениями из определенных ячеек (L2:Q2), далее она копируется в сводную таблицу на листе balans. Но еще необходимо, чтобы в ячейку I5 вставилось значение ячейки Q4 с листа с названием соответствующим значению ячейки A5 (1,2,3... и т.д.). На данный момент для теста реализована вставка значения ячейки B5: Module8 Range("I5").Select ActiveCell.FormulaR1C1 = "=R[0]C[-7]+7" т.е. вместо R[0]C[-7] надо вставить значение ячейки Q4 из листа 1 (но листы меняются! названия листов будет соответствовать значению ячейки А5). В итоге в ячейке I5 должна быть формула - сумма значения Q4 из определенного листа и 7. Необходима именно формула, чтобы при изменении значения на листе, значения в таблице обновлялось.
К сожалению размер файла слишком большой, порезал что мог и архивировал. Надеюсь, если мою проблему решить можно, то того что осталось хватит...Demura
не понятно значение или формула. Если хотите в I5 записать формулу так запишите зачем её копировать? А в общем из разъяснений ничего не понял что Вы хотите.
Цитата
еще необходимо, чтобы в ячейку I5 вставилось значение ячейки Q4 с листа с названием
Вставить с нужного листа по Вашему описанию можно так
не понятно значение или формула. Если хотите в I5 записать формулу так запишите зачем её копировать? А в общем из разъяснений ничего не понял что Вы хотите.gling
ЯД-41001506838083
Сообщение отредактировал gling - Суббота, 09.08.2014, 17:26
gling, Gustav, Спасибо. Но в обоих случаях выдает ошибку Compile error: Expected: list separator or )
Объяснение мое видимо действительно корявое... Попробую еще раз... В ячейки I5 должна вставляться формула типа Х+7, где Х - значение ячейки Q4 листа с таким же именем как значение поля А5 листа balans. ниже как работает макрос на этапе вставки строки: Range("L2:Q2").Copy - на текущем листе копируются значения ячеек L2:Q2 Sheets("balans").Select - переходим на лист balans Range("A5").Select Range("A5").PasteSpecial Paste:=xlValues - вставляем значения с ячейки А5 до F5 Range("G5").Select - в ячейку G5 ActiveCell.FormulaR1C1 = "=-R[0]C[-1]+R[0]C[-2]" - вставляем формулу (-E5+F5) Range("I5").Select - в ячейку I5 ActiveCell.Formula = ???+7 - вставляем формулу ((Q4 c листа с именем=ячейки А5)+7)
Зачем это нужно: В ячейке Q4 каждого листа (кроме balans) записывается дата согласованного акта, оплата должна происходить через 7 дней. Надо, чтобы в ячейке I5 выводилась дата оплаты. При этом ячейки Q4 могут меняться уже после вставки строки на листе balans, поэтому важно чтобы в I5 была формула а не значение (я так понимаю, тогда итог будет также обновляться) имена листов с ячейкой Q4 - 1,2,3...999 значения ячейки A5 листа balans - 1,2,3...999 (соответственно)
gling, Gustav, Спасибо. Но в обоих случаях выдает ошибку Compile error: Expected: list separator or )
Объяснение мое видимо действительно корявое... Попробую еще раз... В ячейки I5 должна вставляться формула типа Х+7, где Х - значение ячейки Q4 листа с таким же именем как значение поля А5 листа balans. ниже как работает макрос на этапе вставки строки: Range("L2:Q2").Copy - на текущем листе копируются значения ячеек L2:Q2 Sheets("balans").Select - переходим на лист balans Range("A5").Select Range("A5").PasteSpecial Paste:=xlValues - вставляем значения с ячейки А5 до F5 Range("G5").Select - в ячейку G5 ActiveCell.FormulaR1C1 = "=-R[0]C[-1]+R[0]C[-2]" - вставляем формулу (-E5+F5) Range("I5").Select - в ячейку I5 ActiveCell.Formula = ???+7 - вставляем формулу ((Q4 c листа с именем=ячейки А5)+7)
Зачем это нужно: В ячейке Q4 каждого листа (кроме balans) записывается дата согласованного акта, оплата должна происходить через 7 дней. Надо, чтобы в ячейке I5 выводилась дата оплаты. При этом ячейки Q4 могут меняться уже после вставки строки на листе balans, поэтому важно чтобы в I5 была формула а не значение (я так понимаю, тогда итог будет также обновляться) имена листов с ячейкой Q4 - 1,2,3...999 значения ячейки A5 листа balans - 1,2,3...999 (соответственно)Demura
ActiveCell.Formula = ???+7 - вставляем формулу ((Q4 c листа с именем=ячейки А5)+7)
[vba]
Код
ActiveCell.Formula = "=INDIRECT(A5&""!Q4"")+7"
[/vba] ДВССЫЛ на русском означает INDIRECT на международном. Надо было просто на кнопочку "Перевод" нажать перед формулой в моем предыдущем посте.Gustav