Итак, у меня есть пользовательская форма и файл базы данных, формат номеров счетов (которые действуют как уникальные серийные номера) в базе данных выглядит как 001/2020, 002/2020, 003/2020 и так далее. С помощью Userform_Initialize я автоматически заполняю поле счета в своей пользовательской форме. Таким образом, если последний счет - 008/2020, счет в форме будет отображаться как 009/2020.
Код для этого:
Me.txtInvoice.Value = Format(Int(Left(lastInvoice, 3)) + 1, "000") & "/" & current_year
, где lastInvoice - это номер счета в последняя использованная строка в базе данных, а current_year - это переменная, в которой хранится текущий год, и это работает нормально.
Проблема в том, что иногда пользователям нужно изменить номера счетов на формат xxx-A / 2020, xxx-B / 2020 и так далее. xxx может быть любым числом, которое создается автоматически. Поэтому, когда они добавляют A, B, C, мой код перестает правильно рассчитывать номер счета. Также им не нужно каждый раз добавлять A, B, C. Итак, в базе данных это может быть xxx / год или xxx-A / год и т. Д.
Я хочу игнорировать xxx-A / 2020, xxx-B / 2020 и добавить единицу к последнему номеру счета-фактуры, который не было A / B / C
Пожалуйста, помогите
Изменить: Код инициализации пользовательской формы:
Private Sub UserForm_Initialize()
Call Reset
Call Reset2
Call Reset3
Call Reset4
Application.ScreenUpdating = False
Dim current_year As String
current_year = FinancialYear(Date)
Dim nwb As Workbook
Dim lastInvoice As String
Set nwb = Workbooks.Open("C:\Users\username\Downloads\TestDB.xlsx")
lastRow = WorksheetFunction.CountA(nwb.Sheets("Sheet1").Range("A:A"))
lastInvoice = nwb.Sheets("Sheet1").Cells(lastRow, 2)
Me.txtInvoice.Value = Format(Int(Left(lastInvoice, 3)) + 1, "000") & "/" & current_year
Me.shipInvoice.Value = Format(Int(Left(lastInvoice, 3)) + 1, "000") & "/" & current_year
Me.tbInvoice.Value = Format(Int(Left(lastInvoice, 3)) + 1, "000") & "/" & current_year
'Format(Int(Left(.Cells(emptyRow - 1, 2).Value, 3)) + 1, "000") & "/" & current_year
nwb.Save
nwb.Close
End sub