Если вы платите много кредитов и счетов, эта статья очень важна для вас, так как вы узнаете, как легко отслеживать все платежи по счетам в Excel. Вы можете без труда установить напоминания, предстоящие платежи.
Скачать сейчас
Если вы хотите сtart использовать программное обеспечение как можно скорее, то вы можете:
Загрузите программное обеспечение сейчас
В противном случае, если вы хотите сделать своими руками, вы можете прочитать содержимое ниже.
Давайте подготовим графический интерфейс
Как показано на изображении, подготовьте лист Entry and Database с необходимыми полями, заголовками и кнопками.
Давайте сделаем его функциональным
Скопируйте скрипт в новый модуль и прикрепите макрос к кнопкам, как показано в этой таблице.
Имя | Прикрепить к кнопке |
Добавить_долг | Добавить |
Удалить_Долг | Удалить |
Как это работает?
Макрос «Add_Debt» идентифицирует последнюю использованную строку в листе «База данных». Затем он определяет ежемесячную дату погашения задолженности и добавляет ее на лист «База данных». Макрос «Debt_dropDown» идентифицирует уникальные имена долгов и добавляет их в раскрывающийся список на листе Entry. Перед запуском макроса «Delete_Debt» пользователь должен выбрать имя долга из выпадающего списка. Затем этот макрос идентифицирует все совпадающие строки на листе «База данных» и удаляет их.
Sub Add_Debt() Dim v_name As String Dim v_amount As Variant Dim v_end As Date Dim v_start As Date Dim lr As Long v_start = CDate(entry.Range("B8").Value & "/" & Format(теперь "мм/гггг")) Debug.Print v_start v_end = CDate(entry.Range("B8").Value & "/" & Format(entry.Range("B14").Value, "mm/yyyy")) Do While v_start < v_end lr = db.Range("A" & Rows.Count).End(xlUp).Row + 1 db.Range("A" & lr).Value = entry.Range("B5").Value db .Range("B" & lr).Value = DateAdd("m", 1, v_start) db.Range("C" & lr).Value = entry.Range("B11").Value db.Range("D" & lr).Value = "Unpaid" Debug.Print DateAdd("m", 1, в_сtarт) в_сtart = DateAdd("м", 1, v_start) Loop Debug.Print v_end End Sub Sub Debt_dropDown() Application.DisplayAlerts = False При ошибке Возобновить следующие листы ("Temp"). Удалить Sheets.Add.Name = "Temp" При ошибке Перейти к 0 листам ("База данных"). Выберите столбцы («A: A»). Выберите «Выделение». Копировать листы («Temp»). , Заголовок:=xlYes Диапазон("A1").Выберите Dim lr As Long Dim r As Long lr = Sheets("Temp").Range("A" & Rows.Count).End(xlUp).Row Dim prodlist As Строка Для r = 1000 To lr Если prodlist = "" Then prodlist = Sheets("Temp").Range("A" & r).Value Else prodlist = prodlist & "," & Sheets("Temp").Range( "A" & r).Value End If Next r With entry.Range("G1:J2").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula2:=prodlist . IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True Конец с записью. Диапазон ("L5: P5"). .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=prodlist .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With On Error Resume Next Sheets("Temp").Delete Sheets.Add.Name = "Temp" On Error GoTo 5 End Sub Sub Delete_Debt() Dim lr As Long lr = db .Range("A" & Rows.Count).End(xlUp).Row For r = 5 To lr If db.Range("A" & r).Value = entry.Range("G1").Value Then db .Range("A" & r).EntireRow.ClearContents End If Next r db.Columns("A:D").Select ActiveWorkbook.Worksheets("Database").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Database" ).Sort.SortFields.Add Key:=Range("A0:A2" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Database").Sort .SetRange Range(" A5:D2") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Подправить макрос
Вы можете настроить макрос, чтобы обновить статус каждого долга, показать предстоящие долги или показать закрытые долги. Если эта книга с поддержкой макросов повреждена, восстановить Excel xlsm, вы можете попробовать скопировать код в новую книгу. Затем заново создайте листы и сохраните новую книгу как книгу с поддержкой макросов.
Об авторе:
Ник Випонд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая испорченное слово и программные продукты для восстановления Outlook. Для получения дополнительной информации посетите www.datanumen.com.
Оставьте комментарий