Анастасия... Форма у вас красивая получилось...
Советы:
1. Заголовок формы лучше заменить. Сейчас у вас это UserForm4 (изменить можно в свойствах или так в модуле формы
Me.Caption = "Добавление заявок")
2. Вот такие строки в коде желательно удалять - это вы записывали код макрорекордером и делали скроллинг колёсиком мышки по листу вверх-вниз. Они не нужны в коде
Код |
---|
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
|
3. Объявление "Option Explicit" должно быть указано самой первой строкой в модуле
4. В коде лучше не использовать TextBox1, TextBox2, TextBox3 - вы не знаете что это такое (неосмысленные название контролов). Поменяйте название, например, на такое
TextBox1 замените название на
TextBox_GPNomerTextBox2 замените название на
TextBox_ZakazchikTextBox3 замените на
TextBox_Addressи т.д
5. В коде с данными на листе лучше работать вот так
Код |
---|
With Worksheets("Управление")
'тут считываете и записываете данные на лист. Но обязательно нужно ставить точку перед адресом ячейки
iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'вот тут стоит точно перед Cells
End With |
Ответ на ваш вопрос - я предлагаю такой
Код |
---|
Private Sub UserForm_Initialize()
Dim iLastRow As Long
Dim LastGPNumber As String, NewGPNumber As String
With Worksheets("Управление")
iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
LastGPNumber = .Cells(iLastRow - 2, 2) 'последний записанный номер Серии ГП
End With
NewGPNumber = CLng(Split(LastGPNumber, "-")(1)) + 1 'выдёргиваем цифру номера и прибавляем 1 к номеру
NewGPNumber = Format(NewGPNumber, "01-00000") 'форматируем новый номер в нужном вам формате
Me.TextBox1.Text = NewGPNumber 'подставляем новый номер в Форму
End Sub |