Это моя первая публикация здесь, и я новичок в VBA.
Чего я пытаюсь добиться, так это установить правильный статус членства из списка из 3 возможностей; Активен, просрочен или платеж не произведен. Это основано на дате, введенной в другое текстовое поле под названием «Оплачено». Это 12-месячное членство, поэтому:
Если введенное или отображаемое значение даты в текстовом поле «Оплачено» < сегодняшней даты, тогда текстовое поле «Статус членства» регистрируется/отображается как «активное». Если в текстовом поле «Оплачено» > сегодняшняя дата, то текстовое поле «Статус членства» регистрируется/отображается как «истек срок действия». Если текстовое поле «Оплачено» пусто, то в текстовом поле «Статус членства» отображается/регистрируется «Платеж не произведен».
Два текстовых поля являются частью рабочего листа БД в Excel, при этом «статус членства» находится в столбце G, а «Оплачено» — в столбце H.
Любая помощь будет принята с благодарностью.
заранее спасибо


Как насчет следующего, он проверит последнюю строку с данными в столбце A, а затем перейдет от строки 2 к последним проверочным значениям в столбце H (оплачивается) и обновит столбец G (статус членства) до соответствующего значения:
Sub UpdateStatus()
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("DB")
'declare and set the worksheet you are working with, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A
For i = 2 To LastRow
'loop from row 2 to last row
If ws.Cells(i, "H").Value = "" Then ws.Cells(i, "G").Value = "No Payment Made"
'if nothing under Paid On then "No Payment Made"
If ws.Cells(i, "H").Value < Now() And ws.Cells(i, "H").Value <> "" Then ws.Cells(i, "G").Value = "Active"
'if Paid On < Today then "Active"
If ws.Cells(i, "H").Value > Now() Then ws.Cells(i, "G").Value = "Expired"
'if Paid On > Today then "Expired"
Next i
End Sub
Привет Xabier, Спасибо за ваш быстрый ответ. Кроме того, как мне теперь отображать статус членства в текстовом поле моей пользовательской формы? Нужно ли указывать «me.membershipstatus.value=(укажите значение здесь)».