Новичок с макросами / vba здесь.
У меня есть шаблон с двумя кнопками - одна копирует и вставляет лист в новую вкладку, вторая добавит строки на основе кнопки Command из ручного ввода
Можно ли в любом случае отредактировать код так, чтобы он вводил количество строк для добавления на основе значения ячейки в шаблоне - например, добавлял количество строк на основе значения в ячейке D16
Private Sub CommandButton2_Click()
Dim numrow
numrow = Application.InputBox("Please enter number of rows to add. Note: please refer to total installments (Cell D16)", "Insert Row", , , , , , 1)
If IsNumeric(numrow) Then
For i = 1 To numrow
Call INRW
Next i
End If
End Sub
Код для INRW, как показано ниже
Sub INRW()
ActiveSheet.Unprotect "Password"
Range("B" & Rows.Count).End(xlUp).Select
ActiveCell.Offset(-2).EntireRow.Insert Shift:=xlDown
Range("B22").End(xlDown).Offset(-1).Copy
Range("B22").End(xlDown).PasteSpecial xlPasteFormulas
Range("B22").End(xlDown).Offset(1).PasteSpecial xlPasteFormulas
Range("H22").End(xlDown).Offset(-1).Select
Range(ActiveCell, ActiveCell.End(xlToRight)).Copy
Range("H22").End(xlDown).PasteSpecial xlPasteFormulas
ActiveCell.Offset(1).PasteSpecial xlPasteFormulas
ActiveSheet.Protect "Password"
End Sub
Или я мог бы напрямую запустить INRW после копирования листа?
Public Sub CopySheetAndRename()
Dim newName As String
On Error Resume Next
newName = InputBox("Enter the name for the copied worksheet")
If newName <> "" Then
ActiveSheet.Copy After:=Worksheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = newName
Range("$D$3").Value = newName
End If
Dim n As Name
For Each n In ActiveWorkbook.Names
n.Visible = True
Next n
End Sub
Файл былПервоначально работая, я пытался упростить процесс использования файла.
Назначение файла -
- Пользователь должен сделать копию вкладки шаблона с помощью кнопки -CopySheetAndRename
- Пользователь, который вводит имя вкладки (которая будет уникальным идентификатором), которая соответствует информации, связывающей базу данных с информацией в той же книге, но на другой вкладке
- Ячейки во вновь созданном шаблоне будут затем vlookup возвращаться в базу данных для извлечения битов данных, относящихся к этому уникальному идентификатору - один из которых будет числовым значением для количества столбцов для добавления
- В текущем файлезатем пользователю придется вручную вводить количество строк для добавления на основе этой информации
- Однако я пытался упростить процесс, добавив макросу добавление указанного количества строк после создания нового листа.
- Я бы хотел оставить поле ввода, поскольку пользователь может добавить строки, превышающие количество, указанное в D16
Надеюсь, это имеет смысл