Здравствуйте, дамы и господа. Есть шаблон расчёта коммерческого предложения, и ячейки, содержащие формулы, во избежание изменений и удаления, защищены. Но! Стандартный шаблон расчёта содержит только две строки, а бывает, что считать нужно по 10-50 и более наименований. Нарыл в сети макросы добавления/удаления строк, вроде бы приспособил под свою таблицу, но что-то идёт не так. Во-первых, макрос, который должен вставлять строки ИСКЛЮЧИТЕЛЬНО в выделенном диапазоне(A3:H4), может их вставить и вне этого диапазона, что недопустимо. И более того, макрос удаления строк не может удалить строки, вставленные вне диапазона(A3:H4). В файле примера жёлтым выделен диапазон, в котором не должны вставляться строки. Пытался внести изменения самостоятельно, но желаемый результат не достигнут. Подскажите, пожалуйста, как можно реализовать задумку? И ещё вопрос: можно ли оптимизировать макросы удаления/добавления строк так, чтобы в шаблоне изначально стояла только одна строка, но имелась бы возможность добавлять сколько угодно(при этом формулы бы копировались во вновь добавленные строки), а потом удалять их, оставляя лишь первую?
Заранее благодарю за помощь.
Здравствуйте, дамы и господа. Есть шаблон расчёта коммерческого предложения, и ячейки, содержащие формулы, во избежание изменений и удаления, защищены. Но! Стандартный шаблон расчёта содержит только две строки, а бывает, что считать нужно по 10-50 и более наименований. Нарыл в сети макросы добавления/удаления строк, вроде бы приспособил под свою таблицу, но что-то идёт не так. Во-первых, макрос, который должен вставлять строки ИСКЛЮЧИТЕЛЬНО в выделенном диапазоне(A3:H4), может их вставить и вне этого диапазона, что недопустимо. И более того, макрос удаления строк не может удалить строки, вставленные вне диапазона(A3:H4). В файле примера жёлтым выделен диапазон, в котором не должны вставляться строки. Пытался внести изменения самостоятельно, но желаемый результат не достигнут. Подскажите, пожалуйста, как можно реализовать задумку? И ещё вопрос: можно ли оптимизировать макросы удаления/добавления строк так, чтобы в шаблоне изначально стояла только одна строка, но имелась бы возможность добавлять сколько угодно(при этом формулы бы копировались во вновь добавленные строки), а потом удалять их, оставляя лишь первую?
If .Row > rng.Row + 1 And .Row <= rng.Row + rng.Rows.Count - 1 Then .EntireRow.Insert Else
[/vba] Добавлять много сразу у Вас и так можно - выделите сколько нужно строк, захватив при этом четвертую строку и жмите кнопку И удалять всю кучу можно. Выделите сколько нужно и жмите кнопку. Только не выделяйте первую и последнюю строки таблицы
Перепишите строку условия вот так [vba]
Код
If .Row > rng.Row + 1 And .Row <= rng.Row + rng.Rows.Count - 1 Then .EntireRow.Insert Else
[/vba] Добавлять много сразу у Вас и так можно - выделите сколько нужно строк, захватив при этом четвертую строку и жмите кнопку И удалять всю кучу можно. Выделите сколько нужно и жмите кнопку. Только не выделяйте первую и последнюю строки таблицы_Boroda_
Насколько я понимаю, реализовать шаблон с изначально одной строкой(которая будет являться и первой и последней) невозможно, поскольку в итоге макрос не будет работать, так?
Александр, огромное спасибо! То, что надо.
Насколько я понимаю, реализовать шаблон с изначально одной строкой(которая будет являться и первой и последней) невозможно, поскольку в итоге макрос не будет работать, так?Xpert
Этот макрос не будет, но, думаю, можно написать такой, который будет. Вот только зачем? Один из главных принципов программиста - не нужно лезть туда, где и так все работает
Этот макрос не будет, но, думаю, можно написать такой, который будет. Вот только зачем? Один из главных принципов программиста - не нужно лезть туда, где и так все работает_Boroda_
В общем-то, да, но в данном случае(поскольку это шаблон), расчёт может быть проведён на одно наименование, и вторая пустая строка выглядит несколько..ммм...не эстетично.
В общем-то, да, но в данном случае(поскольку это шаблон), расчёт может быть проведён на одно наименование, и вторая пустая строка выглядит несколько..ммм...не эстетично.Xpert