Excel макрос на добавление ячейки

Содержание

  1. Метод Range.Insert (Excel)
  2. Синтаксис
  3. Параметры
  4. Возвращаемое значение
  5. Примечания
  6. Пример
  7. Поддержка и обратная связь
  8. Пример макроса для вставки и удаления строк или столбцов на нескольких листах в Excel
  9. Аннотация
  10. Дополнительная информация
  11. Пример макроса с использованием цикла для вставки строк на несколько листов
  12. Пример макроса для выбора столбца и вставки нового столбца
  13. VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)
  14. Метод Range.Cut
  15. Синтаксис
  16. Параметры
  17. Метод Range.Copy
  18. Синтаксис
  19. Параметры
  20. Метод Worksheet.Paste
  21. Синтаксис
  22. Параметры
  23. Примеры
  24. 43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
  25. Excel макрос на добавление ячейки
  26. Как средствами VBA добавить строку в таблицу Excel, но вставить так, чтобы новые ячейки были частью диапазона (Range) ?

Метод Range.Insert (Excel)

Вставляет ячейку или диапазон ячеек в лист или лист макросов и перемещает другие ячейки в сторону, чтобы освободить место.

Синтаксис

expression. Insert (SHIFT, CopyOrigin)

выражение: переменная, представляющая объект Range.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Shift Необязательный Variant Определяет способ сдвига ячеек. Может быть одной из следующих констант XlInsertShiftDirection : xlShiftToRight или xlShiftDown. Если этот аргумент опущен, Microsoft Excel принимает решение на основе формы диапазона.
CopyOrigin Необязательный Variant Источник копирования; то есть, откуда копировать формат для вставленных ячеек. Может быть одной из следующих констант XlInsertFormatOrigin : xlFormatFromLeftOrAbove (по умолчанию) или xlFormatFromRightOrBelow.

Возвращаемое значение

Примечания

Для параметра CopyOrigin нет значения, эквивалентного значению Clear Formatting при вставке ячеек в Excel в интерактивном режиме. Для этого используйте метод ClearFormats .

Пример

В этом примере вставляется строка над строкой 2, копируя формат из строки ниже (строка 3), а не из строки заголовка.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Пример макроса для вставки и удаления строк или столбцов на нескольких листах в Excel

Аннотация

Эта статья содержит пример макроса Microsoft Visual Basic для приложений (вспомогательная процедура), который можно использовать для вставки или удаления строк или столбцов на нескольких листах в Microsoft Excel.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут объяснить функциональность отдельной процедуры. обязаны изменять примеры для реализации дополнительных возможностей или удовлетворения требований конкретных пользователей. Чтобы вставить или удалить строки или столбцы на нескольких листах, используйте команду For Each. Next statement для циклического прохода по всем необходимым листам или выберете строки или столбцы перед выполнением вставки или удаления.

Приведенные ниже примеры макросов работают только с непрерывным диапазоном столбцов или строк.

Пример макроса с использованием цикла для вставки строк на несколько листов

Пример макроса для выбора столбца и вставки нового столбца

Следующий пример макроса выбирает весь столбец перед вставкой новых столбцов:

Источник

VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)

Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в VBA Excel. Методы Cut, Copy и PasteSpecial объекта Range, метод Paste объекта Worksheet.

Метод Range.Cut

Синтаксис

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена.

Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.

Метод Range.Copy

Синтаксис

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена.

Метод Worksheet.Paste

Синтаксис

Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.

Параметры

Параметры Описание
Destination Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект.
Link Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию).

В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.

Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).

Примеры

Вырезание и вставка диапазона одной строкой (перемещение):

Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:

Копирование и вставка диапазона одной строкой:

Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:

Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:

43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”

Странно, что не рассмотрено копирование ячеек, которые Cells.
Например, следующая строка копирует ячейку A1 в B2

а эта делает тоже самое, но демонстрирует,
как можно добавить размер и смещение:

Здравствуйте!
Скажите, как можно копировать на Лист 1, а вставить на Лист 2 диапазон ячеек целиком, либо отсортированный по 1 признаку диапазон(например по какому-то определенному значению, скажем, числу «500» в одном столбце Листа 1)?

Привет, Максим!
Вот пример сортировки таблицы по значению 500 в первом столбце на «Лист6» и копирования диапазона с «Лист6» на «Лист4» :

Спасибо большое, только я, наверно, неправильно описал ситуацию.
Сперва из эталонной таблицы Лист 1 копируем весь список на существующий Лист4.
Затем, пропускаем шапку, и, начиная со строки7, уже на Лист4 ищем строку, у которой в столбце 5 стоит число 500.
Вырезаем эту строку и вставляем на позицию строки 7. т.е первая после шапки.
Ищем следующую строку — вырезаем, потом вставляем на позицию строки 7+1=8 и т.д.
В итоге оставим только те строки, у которых в столбце 5 стоит число «500», остальные удаляются строки.

(пробовал менять местами строки в предыдущем коде, ошибок нет, копирует, переходит на лист 4, но строки на нем не удаляет, циклы пошагово проходят, но ничего не изменяется.)

Источник

Excel макрос на добавление ячейки

помогите создать макрос для вставки ячеек.

есть таблица данных от стролбца С до Y
заполненные строки от 1 до 10
11 строка таблицы пустая.

надо когда стоит курсор на С11
при нажатии кнопки
вставить ячейки перед 11 строкой с столбца С до Y,
а также скопировать данные тогда с строки 12 от столбцов М до Х
в строку которую вставил со столбца М.

спасибо за помощь.

а как тогда получается что мы вставили данные в вставленную строку,
а как потом вставить новую строку после этой вставленной.
и так далее.

даже на знаю.
у меня обычно все получается, когда я понимаю что должно получиться в итоге, а вот когда не понимаю — получается всякая ерунда.

и вообще ничего не получается, когда уточнения перечеркивают первоначальную постановку задачи.

извени Игор
поставленная первоначальная задача выполняется.

но мне бы хотелось чтобы когда мы вставим строчку с ячейки С11
СЛЕДУЮЩУЮ строчку уже можно было вставлять с ячейки С12
и так далее

а здесь получается что строчки вставляются только с С11

либо если мы знаем коры ячейки С11.
то можно перед этими корами вставлять условия первой поставленной задачи и тогда АКТИВНОЙ ДЛЯ ВСТАВКИ строки стает ячейка С12

я начал использовать через макрос.

а так тему можно закрывать.

это понятно.
но что если есть защита листа и можно форматы ячеек и формулы в них на 1000 строк забить и так сражу увеличить размер файла, или добавлять по нужному количеству строк

и последняя строка данных есть конечными координатами для анализа данных в другом листе
когда вставляешь строку перед последней то и изменяеться граница анализа данных

я слаб в екселе. другого придумать не могу.

Источник

Как средствами VBA добавить строку в таблицу Excel, но вставить так, чтобы новые ячейки были частью диапазона (Range) ?

Создается макрос для автозаполнения ведомости. При нажатии кнопки добавляется фамилия и данные. Как сделать так, чтобы диапазон имел переменное число ячеек в столбце, а ячейки ниже при добавлении строки соответственно смещались на одну ячейку вниз, и вместе с ними смещались имена диапазонов и формулы. Всяко уже перепробовал. И ещё, формулы, вставленные из макроса почему-то вычисляются не сразу, а после щелчка мышью по строке ввода формул (сверху) , сначала выдав ошибку. Вот предварительный макрос:

Sub Кнопка1_Щелчок ()
Dim i, j As Integer

‘Range(«E18»).Value = Range(«E18»).Value + 1
ActiveSheet.Name = «Экзамен (1)»
Range(«A1»).Value = «ЭКЗАМЕНАЦИОННАЯ ВЕДОМAСТЬ»
Range(«A1»).Font.Bold = True
Range(«A1»).Font.Size = 14
Range(«A2»).Value = «Группа №»
Range(«C2»).Value = «Дисциплина»
Range(«A3»).Value = «№ п/п»
Range(«B3»).Value = «Ф. И. О. »
Range(«C3»).Value = «№ зачетной книжки»
Range(«D3»).Value = «Оценка»
Range(«E3»).Value = «Подпись экзаменатора»
Range(«F3»).Value = «5»
Range(«G3»).Value = «4»
Range(«H3»).Value = «3»
Range(«I3»).Value = «2»
Range(«J3»).Value = «Неявки»
Range(Cells(4, 1), Cells(4, 10)).ClearContents
If ActiveSheet.Range(«A5»).Value = «» Then ActiveSheet.Range(«A5»).Value = «1»

i = Range(«ИТОГО»).Value
Cells(i + 5, 1) = Cells(i + 4, 1) + 1
MsgBox (Str(Range(«ОТЛИЧНО»).Count))
Dim NewRange As Range
Set NewRange1 = Range(Cells(i + 7 + 7, 1), Cells(i + 12 + 7, 3))
Set NewRange2 = Range(Cells(i + 7 + 7, 3), Cells(i + 11 + 7, 3))
NewRange2.Name = «ТОГО»
NewRange1.Range(«A1») = «Отлично»
NewRange1.Range(«A2») = «Хорошо»
NewRange1.Range(«A3») = «Удовлетворительно»
NewRange1.Range(«A4») = «Неудовлетворительно»
NewRange1.Range(«A5») = «Неявки»
NewRange1.Range(«A6») = «ИТОГО»
NewRange1.Range(«C1») = «=СУММ (ОТЛИЧНО) »
NewRange1.Range(«C2») = «=СУММ (ХОРОШО) »
NewRange1.Range(«C3») = «=СУММ (УДОВЛЕТВОРИТЕЛЬНО) »
NewRange1.Range(«C4») = «=СУММ (НЕУДОВЛЕТВОРИТЕЛЬНО) »
NewRange1.Range(«C5») = «=СУММ (НЕЯВКИ) »
NewRange1.Range(«C6») = «=СУММ (ТОГО) »
‘NewRange.Select
‘Range(«A12»).Name.Delete **************** это закоментировано. было создано для отладки
‘Range(«A12»).Name.Delete
‘Range(Cells(19, 1), Cells(19, 3)).Name.Delete
‘Cells(i + 8, 1).Name = «New»
‘For i = 6 To 1 Step -1
‘Cells(i + 13, 1) = Cells(i + 12, 1)
‘Cells(i + 13, 3) = Cells(i + 12, 3)
‘Cells(i + 5, 1) = Cells(i + 4, 1) + 1
‘Next i
‘Cells(i + 15, 1) = ИТОГ
i = i + 1
‘Range(«ИТОГО»).Value = Range(«ИТОГО»).Value + 1
‘Range(«J3»).Value =

End Sub

Не поняла Ваших проблем.
Выделим диапазон вручную, меню Вставка -Имя -Присвоить (имя Diap) — Ok,
то диапазон поименуется.
Если например, ячейкам D5 и D10 присвоены имена А и В cоответственно,
а выделенный диапазон лежит в тех же строках, например Diap (В5:В10),
то при вставке кучи строк между 5-й и 10-й диапазон удлиняется,
ячейки А и В разъезжаются, можно попрежнему правильно определить сумму
от А до В или по увеличенному диапазону.
Разумеется при вставке строк вы должны в новых строках и формулы заполнить,
но это не проблема )))

Программно можно поименовать диапазон так:
Range(«D5:D19»).Select
ActiveWorkbook.Names.Add Name:=»Diap», RefersToR1C1:=»=Лист1!R5C4:R19C4″
А выделить так
Range(«Diap»).Select
При удалении нескольких строк (в пределах разумного) всё работает точно также.

На то и придуман диапазон, чтобы не возиться с конкретными адресами ячеек,
которые при работе все время изменяются и по адресации и по количеству.

Получается, что именованные ячейки или диапазоны могут плавать по Листу.

Спасибо за вопрос, я и сама час назад этого не умела )))

Источник

Вставка диапазона со сдвигом ячеек вправо или вниз методом Insert объекта Range. Вставка и перемещение строк и столбцов из кода VBA Excel. Примеры.

Range.Insert – это метод, который вставляет диапазон пустых ячеек (в том числе одну ячейку) на рабочий лист Excel в указанное место, сдвигая существующие в этом месте ячейки вправо или вниз. Если в буфере обмена содержится объект Range, то вставлен будет он со своими значениями и форматами.

Синтаксис

Expression.Insert(Shift, CopyOrigin)

Expression – выражение (переменная), возвращающее объект Range.

Параметры

Параметр Описание Значения
Shift Необязательный параметр. Определяет направление сдвига ячеек. Если параметр Shift опущен, направление выбирается в зависимости от формы* диапазона. xlShiftDown (-4121) – ячейки сдвигаются вниз;
xlShiftToRight (-4161) – ячейки сдвигаются вправо.
CopyOrigin Необязательный параметр. Определяет: из каких ячеек копировать формат. По умолчанию формат копируется из ячеек сверху или слева. xlFormatFromLeftOrAbove (0) – формат копируется из ячеек сверху или слева;
xlFormatFromRightOrBelow (1) – формат копируется из ячеек снизу или справа.

* Если диапазон горизонтальный или квадратный (количество строк меньше или равно количеству столбцов), ячейки сдвигаются вниз. Если диапазон вертикальный (количество строк больше количества столбцов), ячейки сдвигаются вправо.

Примеры

Простая вставка диапазона

Вставка диапазона ячеек в диапазон «F5:K9» со сдвигом исходных ячеек вправо:

Range(«F5:K9»).Insert Shift:=xlShiftToRight

Если бы параметр Shift не был указан, сдвиг ячеек, по умолчанию, произошел бы вниз, так как диапазон горизонтальный.

Вставка вырезанного диапазона

Вставка диапазона, вырезанного в буфер обмена методом Range.Cut, из буфера обмена со сдвигом ячеек по умолчанию:

Range(«A1:B6»).Cut

Range(«D2»).Insert

Обратите внимание, что при использовании метода Range.Cut, точка вставки (в примере: Range("D2")) не может находится внутри вырезанного диапазона, а также в строке или столбце левой верхней ячейки вырезанного диапазона вне вырезанного диапазона (в примере: строка 1 и столбец «A»).

Вставка скопированного диапазона

Вставка диапазона, скопированного в буфер обмена методом Range.Copy, из буфера обмена со сдвигом ячеек по умолчанию:

Range(«B2:D10»).Copy

Range(«F2»).Insert

Обратите внимание, что при использовании метода Range.Copy, точка вставки (в примере: Range("F2")) не может находится внутри скопированного диапазона, но в строке или столбце левой верхней ячейки скопированного диапазона вне скопированного диапазона находится может.

Вставка и перемещение строк

Вставка одной строки на место пятой строки со сдвигом исходной строки вниз:


Вставка четырех строк на место пятой-восьмой строк со сдвигом исходных строк вниз:


Вставка строк с использованием переменных, указывающих над какой строкой осуществить вставку и количество вставляемых строк:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sub Primer1()

Dim n As Long, k As Long, s As String

‘Номер строки, над которой необходимо вставить строки

n = 8

‘Количесто вставляемых строк

k = 4

‘Указываем адрес диапазона строк

s = n & «:» & (n + k 1)

‘Вставляем строки

Rows(s).Insert

End Sub

‘или то же самое с помощью цикла

Sub Primer2()

Dim n As Long, k As Long, i As Long

n = 8

k = 4

    For i = 1 To k

        Rows(n).Insert

    Next

End Sub


Перемещение второй строки на место шестой строки:

Rows(2).Cut

Rows(6).Insert

Вторая строка окажется на месте пятой строки, так как третья строка заместит вырезанную вторую строку, четвертая встанет на место третьей и т.д.


Перемещение шестой строки на место второй строки:

Rows(6).Cut

Rows(2).Insert

В этом случае шестая строка окажется на месте второй строки.

Вставка и перемещение столбцов

Вставка одного столбца на место четвертого столбца со сдвигом исходного столбца вправо:


Вставка трех столбцов на место четвертого-шестого столбцов со сдвигом исходных столбцов вправо:


Перемещение третьего столбца на место седьмого столбца:

Columns(3).Cut

Columns(7).Insert

Третий столбец окажется на месте шестого столбца, так как четвертый столбец заместит вырезанный третий столбец, пятый встанет на место четвертого и т.д.


Перемещение седьмого столбца на место третьего столбца:

Columns(7).Cut

Columns(3).Insert

В этом случае седьмой столбец окажется на месте третьего столбца.


Добрый день! Спасибо, что откликнулись. Я вроде описал всё, что я жду от макроса:1 кнопка отвечает за добавление 1 строки выше ячейки, в которой будет находится курсор. Например, курсор находится в ячейке В13 (перед строкой итогов), соответственно выше должна появится (скопироваться и вставиться) строка, которая будет содержать: формулы, формат диапазона А13:М13, а также выпадающий список столбца D.

2 кнопка отвечает за добавление блока строк, эталоном для которого служит диапазон А5:М9 (по умолчанию он должен быть скрыт от пользователя). Принцип такой же, как и у первой кнопки – курсор находится, например в ячейке С15 (после строки итогов), соответственно выше должен появится (скопироваться и вставиться) эталонный диапазон А5:М9.

Что ещё нужно добавить ума не приложу. Крайний макрос срабатывает но, выдаёт ошибку вот в этой строке .Offset(-1).SpecialCells(xlCellTypeConstants, 23).ClearContents.Если удаляю SpecialCells(xlCellTypeConstants, 23) макрос работает, но тогда удаляются все формулы в ячейках, а мне этого не нужно

макрос для создания новых ячеек

Emil410mv

Дата: Вторник, 17.06.2014, 09:00 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Доброго всем времени суток. у меня такая проблема: на первом листе(technical proposals) список клиентов, даты, оборудование и пр, всего несколько колонок, когда все колонки заполняются эта информация копируется на новый лист(comercial proposal) там с ней работает уже другой человек и в строке напротив этой информации вносит другие данные но когда на первом листе заполняется заказ который идет выше предыдущего(красный) то на втором листе этот заказ отображается в нужном месте(под правильным порядковым номером),но данные из синих колонок остаются на прежнем месте и получается путаница. т е сначала оформили заказ номер 093, забили нужную инфу на втором листе, а потом решили оформить 092, а на новом листе данные соответствующие 093 теперь напротив 092. надеюсь правильно объяснил, не могу решить эту проблему. на другом форуме посоветовали написать макрос для создания новых ячеек в нужном месте, как задать условие не знаю
заранее спасибо, я в этом деле новичок так что не судите строго)))

 

Ответить

_Boroda_

Дата: Вторник, 17.06.2014, 09:40 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

когда все колонки заполняются эта информация копируется на новый лист(comercial proposal) там с ней работает уже другой человек

Зачем? Что, другой человек не может работать с старом листе? А для лучшей визуализации заполненное и первым, и вторым человеком переносится на второй лист (если, конечно, это нужно).
по-моему, так будет проще всего.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Emil410mv

Дата: Вторник, 17.06.2014, 10:46 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Зачем? Что, другой человек не может работать с старом листе? А для лучшей визуализации заполненное и первым, и вторым человеком переносится на второй лист (если, конечно, это нужно).
по-моему, так будет проще всего.

я понимаю что так проще, но к сожалению не я решаю по каким процедурам сотрудникам работать. есть задание которое мне надо выполнить и по-другому никак(((

 

Ответить

Emil410mv

Дата: Вторник, 17.06.2014, 10:49 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

есть такой макрос

Sub Вставка()
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1, 12)).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

добавляет группу ячеек ниже выделенной, теперь мне надо автоматизировать это действие, чтобы после отображения нового заказа на листе2, создавались новые ячейки справа от него

 

Ответить

0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

1

23.12.2012, 00:31. Показов 40216. Ответов 85


Студворк — интернет-сервис помощи студентам

Здравствуйте!

Прошу вас помочь, сам я точно не справлюсь!!

В таблице, скажем, из 4-х столбцов (A,B,C,D) необходимо добавить строку снизу. При этом по столбцу A происходит автоматическая пере-нумерация. а последняя строка Итого: не удаляется. если можно

Прикрепил файл, содержащий таблицу. В силу своих возможностей в ней сделал макросы для Удаления строк. А со Вставками большой ступор. Смог только частично написать вставку снизу, но как сделать автоматическую нумерацию и формулу не знаю.

Заранее благодарен!



0



Alex77755

11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 13:07

2

Только откажись от объединения ячеек

Visual Basic
1
2
3
4
5
6
7
8
9
Sub Макрос1()
Dim L
L = 12
Do While Cells(L, 1) <> Empty
L = L + 1
Loop
Rows(L & ":" & L).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(L, 1) = Cells(L - 1, 1) + 1
End Sub

Добавлено через 1 минуту
Искать циклом последнюю строку пришлось из-за того, что ниже таблицы строки заняты



1



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.12.2012, 13:39

3

Можно не убирать объединение, и без цикла:

Visual Basic
1
2
3
4
5
6
Sub tt()
Dim l
l = Range("A12").End(xlDown).Row
Rows(l & ":" & l).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(l, 1) = Cells(l - 1, 1) + 1
End Sub

Там только рамка пропадает — ну это можно ещё пару строк дописать — форматировать Cells(l, 1)



1



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 13:46

 [ТС]

4

Ребят вы не могли бы скинуть документ который вы сделали…я даже не знаю куда это надо ввести…пожалуйста помогите…..заранее благодарен



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 13:52

5

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Можно не убирать объединение, и без цикла:

Можно, наверное.
Только долго крутить скрол в поисках вставленой строки

Миниатюры

Макросы вставки строки снизу в таблице Excel
 



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 13:54

6

Я к тому, что делал не на отвлечённой книге, а на конкретной

Миниатюры

Макросы вставки строки снизу в таблице Excel
 



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:02

 [ТС]

7

это надо просто вставить туда,…..



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 14:05

8

В силу своих возможностей в ней сделал макросы для Удаления строк

А где ж ты их делал раньше?



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:06

 [ТС]

9

я просто вставил кнопки и назначал макросы…а как вы, я не умею



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.12.2012, 14:06

10

Алексей, я тоже делал на конкретной. Мистика…



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:13

 [ТС]

11

если можешь скинь мне готовый файл,… пожалуйста

Добавлено через 5 минут
кроме строки итого: можно сделать макрос для удаление строк



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.12.2012, 14:14

12

См. первую страницу, в 15:06

Добавлено через 41 секунду
Удаления каких строк? Вообще конечно можно….



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:15

 [ТС]

13

кроме строки итого:



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 14:16

14

Мистика не иначе!

Кликните здесь для просмотра всего текста

Я Александр



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:21

 [ТС]

15

Александр! когда нажимаю кнопку Добавить или удалить…выводит не удается выполнить макрос..Возможно, этот макрос отсутствует в текущей книге либо все макросы отключены



0



11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

23.12.2012, 14:22

16

Позор на мою седую голову: не в тот лист макрос вставил
так я кнопкам не назначал



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:22

 [ТС]

17

в смысле



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.12.2012, 14:23

18

tt & ttt



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

23.12.2012, 14:24

19

Упс, Александр, извиняюсь



0



0 / 0 / 0

Регистрация: 23.12.2012

Сообщений: 15

23.12.2012, 14:25

 [ТС]

20

Hugo121, а по одной строки удалить получиться,…



0



Понравилась статья? Поделить с друзьями:
  • Excel макрос на выделение цветом ячеек
  • Excel макрос на вставку строки
  • Excel макрос массивы данных
  • Excel макрос массив столбцов
  • Excel макрос копируем ячейку