#excel #excel-2010 #vba
#excel #excel-2010 #vba
Вопрос:
Excel 2010 Ищет макрос для вставки строк на основе пользовательского ввода. Пользователь предоставляет номер строки для вставки строки.
- На основе пользовательского ввода — строка для вставки на нескольких листах (учетные записи, процесс, данные … и т. Д.) Имеет 19 листов
- Скопируйте формулу и формат из строки выше и автоматически заполните вниз.
До сих пор удалось получить приведенный ниже код для одного листа на основе выбора ячейки
Надеюсь получить некоторые ответы…
Sub Insert_Row()
If Selection.Rows.Count > 1 Then Exit Sub
With Selection
.EntireRow.Copy
.Offset(1).EntireRow.Insert
Application.CutCopyMode = False
On Error Resume Next
.Offset(1).EntireRow.SpecialCells(xlCellTypeConstants).ClearContents
On Error GoTo 0
End With
End Sub
Ответ №1:
Отредактировано:
Sub Insert_Row()
Dim SelRow as Integer, i as Integer, j as Integer
If Selection.Rows.Count > 1 Then Exit Sub
SelRow = Selection.Row
On Error Goto nonNumeric
j = InputBox("What row to insert data into?", "Pick a row")
On Error GoTo 0
GoTo NumericEntry
nonNumeric:
On Error GoTo 0
MsgBox("Please try again with a number.")
Exit Sub
NumericEntry:
For i = 1 to 19
Sheets(1).Select
Rows(SelRow).copy
Sheets(i).Select
Rows(j).Insert
On Error Resume Next
Rows(j).SpecialCells(xlCellTypeConstants).ClearContents
On Error GoTo 0
Next i
End Sub
Комментарии:
1. Да, строки одинаковы на всех 19 листах. Согласно первоначальному вопросу, для пользовательского ввода должно появиться всплывающее окно с вопросом, после какого номера строки должна быть вставлена новая строка? На основе пользовательского ввода — необходимо вставить новую строку на все 19 листов и формулу автоматического заполнения и форматирования на всех 19 листах
2. Обновлен мой предыдущий комментарий.
3. Получение ошибки времени выполнения «1004» — Строка, которая должна быть вставлена на нескольких листах (учетные записи, процесс, данные … и т. Д.), Имеет 19 листов