Как проверить информация, введенная в ячейку, только если соседняя ячейка не пуста. На VBA в Excel

У меня есть два столбца: один(B) с именем, а другой (A) с номером. Я пытаюсь сделать так, чтобы сообщение об ошибке не позволило мне закрыть excel, если ячейки в столбце a пусты, но соседние ячейки в столбце B не пусты.

например, если ячейка B2 заполняется именем, то в соседней ячейке A2 также должно быть число...в противном случае пользователю будет запрещено закрывать excel.

Я хотел бы также клетки, которые отсутствуют информация в столбце А будет выделена красным цветом.

идея в том, чтобы пользователи не вводят информацию в столбце А, где есть имя присутствует в столбце B.

может кто-нибудь помочь мне с этим?

спасибо

29
задан J Doe
24.12.2022 21:50 Количество просмотров материала 3516
Распечатать страницу

1 ответ

вы можете положить это в ThisWorkbook модуль в проекте:

enter image description here

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim lastRow As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets("Sheet1") ' Change this to the sheet you need to check!
lastRow = ws.Range("B" & Rows.Count).End(xlUp).Row

Dim rng As Range, cel As Range
Set rng = ws.Range(ws.Cells(1, 2), ws.Cells(lastRow, 2))

For Each cel In rng
    If cel.Offset(0, -1).Value = "" And cel.Value <> "" Then
        MsgBox (cel.Address & " is empty. Please populate before closing file.")
        cel.Offset(0, -1).Interior.Color = RGB(255, 0, 0)
        Cancel = True
        ' Exit Sub
    End If
Next cel

End Sub

прежде чем закрыть лист, он проверит диапазон A1:A[last row in col. B] и посмотреть, если какие-либо клетки в столбце а пусты, где столбец B не. Это будет messagebox вам адрес для ввода информации. в.

3
отвечен BruceWayne 2022-12-26 05:38

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

microsoft-excel
microsoft-excel-2010
vba
visual-basic
worksheet-function
Вверх