Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка / удаление строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка / удаление строк (Макросы/Sub)
Вставка / удаление строк
Starbirst Дата: Четверг, 25.04.2019, 12:56 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Доброго времени суток! Ребята, помогите, пожалуйста, с макросами. Имеется табличка с 4 столбцами. Имеется три кнопки: вставка строки выше выделенной, вставка строки ниже выделенной и удаление выделенной строки. Первые две кнопки вставляют пустые строки, при этом значение в столбе А равно значению предыдущей ячейки, а ячейки B, C, D вставляются пустыми. При удалении строки выводится UserForm (не MsgBox) о том, что строка удаляется, восстановить данные невозможно. С макросами мало работаю. Спасибо!
К сообщению приложен файл: -_.xlsm (13.8 Kb)


Сообщение отредактировал Starbirst - Четверг, 25.04.2019, 12:56
 
Ответить
СообщениеДоброго времени суток! Ребята, помогите, пожалуйста, с макросами. Имеется табличка с 4 столбцами. Имеется три кнопки: вставка строки выше выделенной, вставка строки ниже выделенной и удаление выделенной строки. Первые две кнопки вставляют пустые строки, при этом значение в столбе А равно значению предыдущей ячейки, а ячейки B, C, D вставляются пустыми. При удалении строки выводится UserForm (не MsgBox) о том, что строка удаляется, восстановить данные невозможно. С макросами мало работаю. Спасибо!

Автор - Starbirst
Дата добавления - 25.04.2019 в 12:56
boa Дата: Пятница, 26.04.2019, 12:18 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 167 ±
Замечаний: 0% ±

365
Starbirst,
макрорекодером не пробовали записать?


 
Ответить
СообщениеStarbirst,
макрорекодером не пробовали записать?

Автор - boa
Дата добавления - 26.04.2019 в 12:18
Starbirst Дата: Пятница, 26.04.2019, 12:28 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
boa, не получается копировать ячейку А в новую строку.


Сообщение отредактировал Starbirst - Пятница, 26.04.2019, 12:31
 
Ответить
Сообщениеboa, не получается копировать ячейку А в новую строку.

Автор - Starbirst
Дата добавления - 26.04.2019 в 12:28
InExSu Дата: Пятница, 26.04.2019, 21:15 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Выше()

    Selection.EntireRow.Insert
End Sub

Public Sub Кнопка_Строку_Вставить_Ниже()

    Selection.EntireRow.Offset(1, 0).Insert

End Sub

Public Sub Кнопка_Строку_Удалить()

    Selection.EntireRow.Delete
    
End Sub
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Выше()

    Selection.EntireRow.Insert
End Sub

Public Sub Кнопка_Строку_Вставить_Ниже()

    Selection.EntireRow.Offset(1, 0).Insert

End Sub

Public Sub Кнопка_Строку_Удалить()

    Selection.EntireRow.Delete
    
End Sub
[/vba]

Автор - InExSu
Дата добавления - 26.04.2019 в 21:15
Starbirst Дата: Воскресенье, 28.04.2019, 08:05 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
InExSu, огромная благодарность! Можете подправить код макроса таким образом, чтобы при добавлении строк сохранялся столбец A (цвет текста желательно, чтобы был прежний серый)?
 
Ответить
СообщениеInExSu, огромная благодарность! Можете подправить код макроса таким образом, чтобы при добавлении строк сохранялся столбец A (цвет текста желательно, чтобы был прежний серый)?

Автор - Starbirst
Дата добавления - 28.04.2019 в 08:05
Starbirst Дата: Понедельник, 29.04.2019, 10:21 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Ребята! Помогите, пожалуйста, доработать макрос, предложенный InExSu. При добавлении строки выше или ниже не сохраняется текст столбца A (желательно сохранить форматирование текста).
 
Ответить
СообщениеРебята! Помогите, пожалуйста, доработать макрос, предложенный InExSu. При добавлении строки выше или ниже не сохраняется текст столбца A (желательно сохранить форматирование текста).

Автор - Starbirst
Дата добавления - 29.04.2019 в 10:21
K-SerJC Дата: Понедельник, 29.04.2019, 11:51 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
пожалуйста, доработать макрос

так?
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Выше()
r = ActiveCell.Row
    Selection.EntireRow.Insert
    Acopy r + 1, r
End Sub

Public Sub Кнопка_Строку_Вставить_Ниже()
r = ActiveCell.Row
    Selection.EntireRow.Offset(1, 0).Insert
Acopy r, r + 1
End Sub

Public Sub Кнопка_Строку_Удалить()

    Selection.EntireRow.Delete
    
End Sub

Sub Acopy(rSours, rDest)
sr = ActiveCell.Address
Cells(rSours, 1).Select
Selection.Copy
Cells(rDest, 1).Select
ActiveSheet.Paste
Range(sr).Select
End Sub
[/vba]
К сообщению приложен файл: Starbirst2.xlsm (22.1 Kb)


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
пожалуйста, доработать макрос

так?
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Выше()
r = ActiveCell.Row
    Selection.EntireRow.Insert
    Acopy r + 1, r
End Sub

Public Sub Кнопка_Строку_Вставить_Ниже()
r = ActiveCell.Row
    Selection.EntireRow.Offset(1, 0).Insert
Acopy r, r + 1
End Sub

Public Sub Кнопка_Строку_Удалить()

    Selection.EntireRow.Delete
    
End Sub

Sub Acopy(rSours, rDest)
sr = ActiveCell.Address
Cells(rSours, 1).Select
Selection.Copy
Cells(rDest, 1).Select
ActiveSheet.Paste
Range(sr).Select
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 29.04.2019 в 11:51
Starbirst Дата: Понедельник, 29.04.2019, 13:22 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
K-SerJC, супер, огромная благодарность respect respect respect
 
Ответить
СообщениеK-SerJC, супер, огромная благодарность respect respect respect

Автор - Starbirst
Дата добавления - 29.04.2019 в 13:22
Starbirst Дата: Среда, 01.05.2019, 17:36 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
K-SerJC, можете подкорректировать код макроса таким образом, чтобы удаление и вставка строк не происходила, если курсор находится в строках 1 и 2?
 
Ответить
СообщениеK-SerJC, можете подкорректировать код макроса таким образом, чтобы удаление и вставка строк не происходила, если курсор находится в строках 1 и 2?

Автор - Starbirst
Дата добавления - 01.05.2019 в 17:36
InExSu Дата: Среда, 01.05.2019, 20:23 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
чтобы удаление и вставка строк не происходила, если курсор находится в строках 1 и 2?

Вставьте в начало нужных функций код:
[vba]
Код
    With ActiveCell

        If .Row = 1 Or .Row = 2 Then Exit Function

    End With
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
чтобы удаление и вставка строк не происходила, если курсор находится в строках 1 и 2?

Вставьте в начало нужных функций код:
[vba]
Код
    With ActiveCell

        If .Row = 1 Or .Row = 2 Then Exit Function

    End With
[/vba]

Автор - InExSu
Дата добавления - 01.05.2019 в 20:23
Starbirst Дата: Среда, 01.05.2019, 21:23 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
InExSu, пожскажите, пожалуйста, как применить Function?


Сообщение отредактировал Starbirst - Среда, 01.05.2019, 22:02
 
Ответить
СообщениеInExSu, пожскажите, пожалуйста, как применить Function?

Автор - Starbirst
Дата добавления - 01.05.2019 в 21:23
InExSu Дата: Среда, 01.05.2019, 22:07 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
К сообщению приложен файл: Starbirst_excel.xlsm (22.8 Kb)


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал InExSu - Среда, 01.05.2019, 22:37
 
Ответить
СообщениеПривет!

Автор - InExSu
Дата добавления - 01.05.2019 в 22:07
Starbirst Дата: Среда, 01.05.2019, 22:21 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
InExSu, огромная благодарность! На удаление 1 и 2 строки блокировка не срабатывает. "Строка_1_или_2 ActiveCell" перед "Selection.EntireRow.Delete" так же как добавление строк правильно будет? Как быть, если Function необходимо применить например к строкам с 1 по 4? Попробовал заменить If .Row = 1 Or .Row = 2 Then End"на "If .Row = 1 Or .Row = 2 Or .Row = 3 Or .Row = 4 Then End" - сработало. Так правильно?


Сообщение отредактировал Starbirst - Среда, 01.05.2019, 22:50
 
Ответить
СообщениеInExSu, огромная благодарность! На удаление 1 и 2 строки блокировка не срабатывает. "Строка_1_или_2 ActiveCell" перед "Selection.EntireRow.Delete" так же как добавление строк правильно будет? Как быть, если Function необходимо применить например к строкам с 1 по 4? Попробовал заменить If .Row = 1 Or .Row = 2 Then End"на "If .Row = 1 Or .Row = 2 Or .Row = 3 Or .Row = 4 Then End" - сработало. Так правильно?

Автор - Starbirst
Дата добавления - 01.05.2019 в 22:21
InExSu Дата: Среда, 01.05.2019, 22:39 | Сообщение № 14
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
На удаление 1 и 2 строки блокировка не срабатывает

Исправил сообщение 12
Function необходимо применить например к строкам с 1 по 4

Не понял. Function должна иметь имя.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
На удаление 1 и 2 строки блокировка не срабатывает

Исправил сообщение 12
Function необходимо применить например к строкам с 1 по 4

Не понял. Function должна иметь имя.

Автор - InExSu
Дата добавления - 01.05.2019 в 22:39
Starbirst Дата: Среда, 01.05.2019, 22:56 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
InExSu, как правильно применить Function к строкам с 1 по 4, чтобы код макроса не мог к ним применяться?
К сообщению приложен файл: 1041882.xlsm (18.2 Kb)
 
Ответить
СообщениеInExSu, как правильно применить Function к строкам с 1 по 4, чтобы код макроса не мог к ним применяться?

Автор - Starbirst
Дата добавления - 01.05.2019 в 22:56
InExSu Дата: Среда, 01.05.2019, 23:03 | Сообщение № 16
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
применить Function к строкам с 1 по 4

Надеюсь вы пишите про Function Строка_1_или_2.
Замените в коде:
[vba]
Код
Строка_1_или_2
[/vba]
на
[vba]
Код
Строка_1_4
[/vba]

[vba]
Код
.Row = 1 Or .Row = 2
[/vba]
на
[vba]
Код
.Row < 5
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
применить Function к строкам с 1 по 4

Надеюсь вы пишите про Function Строка_1_или_2.
Замените в коде:
[vba]
Код
Строка_1_или_2
[/vba]
на
[vba]
Код
Строка_1_4
[/vba]

[vba]
Код
.Row = 1 Or .Row = 2
[/vba]
на
[vba]
Код
.Row < 5
[/vba]

Автор - InExSu
Дата добавления - 01.05.2019 в 23:03
Starbirst Дата: Четверг, 02.05.2019, 12:03 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
.Row = 1 Or .Row = 2 пробовал заменить на Rows ("1:4") - не срабатывало. Вы мне очень помогли. Благодарю, InExSu.
 
Ответить
Сообщение.Row = 1 Or .Row = 2 пробовал заменить на Rows ("1:4") - не срабатывало. Вы мне очень помогли. Благодарю, InExSu.

Автор - Starbirst
Дата добавления - 02.05.2019 в 12:03
Starbirst Дата: Четверг, 02.05.2019, 17:14 | Сообщение № 18
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
InExSu, помогите, пожалуйста, доусовершенствовать предложенный вами код на вставку строк. После 5 строки цвет шрифта черный, желательно чтобы всегда оставался серый.
 
Ответить
СообщениеInExSu, помогите, пожалуйста, доусовершенствовать предложенный вами код на вставку строк. После 5 строки цвет шрифта черный, желательно чтобы всегда оставался серый.

Автор - Starbirst
Дата добавления - 02.05.2019 в 17:14
InExSu Дата: Четверг, 02.05.2019, 18:09 | Сообщение № 19
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
цвет шрифта черный, желательно чтобы всегда оставался серый

Замените
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Ниже()

    Строка_1_или_2 ActiveCell

    Dim r As Range
    Set r = Selection

    With r

        .EntireRow.Offset(1, 0).Insert

        Cells(.Row, 1).Copy Cells(.Row + 1, 1)

    End With
End Sub
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
цвет шрифта черный, желательно чтобы всегда оставался серый

Замените
[vba]
Код
Public Sub Кнопка_Строку_Вставить_Ниже()

    Строка_1_или_2 ActiveCell

    Dim r As Range
    Set r = Selection

    With r

        .EntireRow.Offset(1, 0).Insert

        Cells(.Row, 1).Copy Cells(.Row + 1, 1)

    End With
End Sub
[/vba]

Автор - InExSu
Дата добавления - 02.05.2019 в 18:09
Starbirst Дата: Четверг, 02.05.2019, 18:24 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
не срабатывает. Может что не так заменил...
 
Ответить
Сообщениене срабатывает. Может что не так заменил...

Автор - Starbirst
Дата добавления - 02.05.2019 в 18:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка / удаление строк (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!