Показать полную графическую версию : Макросы в excel
Bordlord
23-10-2012, 10:56
Подскажите как написать макрос который при срабатывании бы удалял строчку с лист1, но при этом не рушилась подстановка из ячеек на лист2 с лист1. Т.е. Есть таблица на лист1, допустим 3*10, есть шаблон на лист2 в котором в некоторых ячейках вставлены данные с =лист1!a1, b1, c1. Как написать макрос так чтобы можно было удалять строку на лист1, чтобы при этом данные на лист2 не принимали вид =лист1!#ссылка#?
Bordlord, никак. Вы удаляете объект, ссылка на который есть в формуле. Куда этой ссылке ссылаться после удаления объекта?!
Возможные обходные пути могут быть изложены после выкладывания образца документа.
Bordlord
23-10-2012, 14:32
Выложил образец документа, при удалении первой строчки на листе1 ссылка на листе2 вида =лист1!а1 становиться =лист1#CСЫЛКА#
Bordlord, я имел в виду — образец реального документа. Тогда можно будет что-то советовать. А так — ответ пока тот же: никак.
Bordlord
23-10-2012, 14:43
Я и хочу создать реальный документ, его пока не существует
Bordlord, прямого пути для воплощения Вашего желания не существует — об этом я уже писал выше. Это ограничение обусловлено самой системой и никак не может быть преодолено. Но могут быть обходные пути.
Зачем, например, должно осуществляться удаление строки, на ячейки которой есть ссылки в формулах? Что, также, должно происходить с формулами после удаления строки, на ячейку в которой в них были ссылки? Каковы Ваши потребности? Т.е., Вы выше написали как «не хотелось бы», а теперь изложите как и чего «хотелось бы».
Bordlord
23-10-2012, 16:23
Надо чтобы в шаблоне с лист2 при исполнении макроса менялись данные в строках со ссылками, данные берутся из листа1
Bordlord, сожалею, но я бессилен что-либо понять в Вашем изложении задачи.
Bordlord
23-10-2012, 20:47
Я сам иногда не могу понять чего хочу)) мне нужно печатать товарнотранспортные накладные, в них есть статичные данные а есть те которые меняются на каждой ттнке, соответственно мне надо чтобы они менялись по нажатию макроса. Т.е алгоритм такой печать-> макрос-> печать-> макрос-> печать.
Надеюсь так понятнее
Bordlord, нет, не понятно. Понадобится реальный пример с подробными разъяснениями.
Bordlord, чтобы воплотить вашу хотелку, нужно заполнять содержимое листа 2 с помощью макросов, а не формул. Поэтому максимально точно изложите алгоритм необходимых связей.
Bordlord
23-10-2012, 22:41
Сделал табличку с пояснениями
Сделал табличку с пояснениями
Шаблон с заполненными данными нужно запускать на печать на матричном принтере…»
Sic! Стал понятен смысл слова шаблон в контексте задачи.
Вставьте данный код:
Option Explicit
Sub InsertValuesFromActiveCellIntoWorksheet()
If ActiveSheet.Name = "Лист1" Then
If Right(ActiveCell.Address(ReferenceStyle:=xlR1C1), 2) = "C1" Then
If Not IsEmpty(ActiveCell.Value) Then
With ThisWorkbook
With .Worksheets.Item("Лист2")
.Cells.Item(13, 1).Value = ActiveCell.Value
.Cells.Item(15, 4).Value = ActiveCell.Offset(0, 1).Value
.Cells.Item(13, 6).Value = ActiveCell.Offset(0, 2).Value
.PrintPreview
End With
End With
Else
MsgBox "Активная ячейка не содержит данных", vbExclamation, "Ошибка"
End If
Else
MsgBox "Активная ячейка не находится в столбце [A]", vbExclamation, "Ошибка"
End If
Else
MsgBox "Активная ячейка не находится на листе [Лист1]", vbExclamation, "Ошибка"
End If
End Sub
в модуль рабочей книги. Назначьте его вызов на сочетание горячих клавиш. Выделите на первом листе в первом столбце потребную ячейку из списка. Нажмите сочетание горячих клавиш. Будет произведена подстановка данных из строки с выделенной ячейкой во второй лист рабочей книги, и этот лист будет выведен на предварительный просмотр (чтобы Вы могли убедиться, правильно ли произведена подстановка).
Или, может, Вам нужно, перебрав созданный список, просто отпечатать всё подряд?
Bordlord
24-10-2012, 13:17
Мне нужно каждый раз после печати на принтере отматывать бланки назад, так что нужно поменять данные, нажать печать, отмотать, поменять данные, нажать печать, отмотать и т.д.
Можно пояснить куда конктретно вставить?
отматывать бланки назад »
Поясните подробнее, пожалуйста.
Bordlord
24-10-2012, 13:56
кнопочкой на принтере после печати каждой ттнки надо отматывать назад
кнопочкой на принтере после печати каждой ттнки надо отматывать назад »
А что это даёт?
Можно пояснить куда конктретно вставить? »
Я писал — куда.
Вам желательно ознакомиться с документацией:
Начало работы с VBA в Excel 2010 (http://msdn.microsoft.com/ru-ru/library/office/ee814737.aspx)
Краткое руководство: создание макроса - Excel - Office.com (http://office.microsoft.com/ru-ru/excel-help/HA010370613.aspx)
Запуск макроса - Excel - Office.com (http://office.microsoft.com/ru-ru/excel-help/HP010342865.aspx?CTT=1)
Bordlord
24-10-2012, 23:32
при нажатии печать выпадает ошибка 400
при нажатии печать выпадает ошибка 400 »
Приведите скриншот.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.