Найти пустые ячейки в диапазоне, а затем вернуть содержимое другой ячейки в той же строке, что и пустая ячейка - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть адаптированный код Excel VBA (https://wellsr.com/vba/2016/excel/use-isempty-vba-to-check-if-cell-is-blank/)), который определяет, является ли пустым любая ячейка в данном диапазоне. Если она есть, она возвращает msgbx, если ее нет, она возвращает другое сообщение.

Я хотел бы знать, возможно ли вернуть (в msgbx) содержимое ячейки в столбце E той же строки. Это указало бы, какой строке с пустой ячейкой нужнобыть адресованным.

Он смотрит на два столбца. В идеале, если обе ячейки в одной строке пустые, он только один раз вернет содержимое ячейки в столбце E.

Вот кодНе могли бы вы, ребята, помочь мне изменить то, что я прошу?

Sub IsEmptyRange()
Dim cell As Range
Dim bIsEmpty As Boolean

bIsEmpty = False
For Each cell In Range("G26:H38,G25,G23:H24,G22,G6:H21,G5,G3:H4")
    If IsEmpty(cell) = True Then
    'An empty cell was found. Exit loop
    bIsEmpty = True
        Exit For
    End If
Next cell

If bIsEmpty = True Then
    MsgBox "One or more cells are empty"
Else   
    MsgBox "All cells are filled in"
End If
End Sub

Спасибо!

AR

1 Ответ

0 голосов
/ 25 апреля 2019

Изменить.Включенные запросы комментариев.

Option Explicit

Sub IsEmptyRange()
Dim cell As Range
Dim bIsEmpty As Boolean
Dim emptyCellRow As Long
Dim arrRows() As Long, i As Long
Dim arrValues() As String
Dim emptyRow As Variant, emptyRows As String, emptyValues As String
bIsEmpty = False
i = 0
For Each cell In Range("G26:H38,G25,G23:H24,G22,G6:H21,G5,G3:H4")
    If IsEmpty(cell) = True Then
        'An empty cell was found. Exit loop
        emptyCellRow = cell.Row
        bIsEmpty = True

        ReDim Preserve arrRows(i)
        ReDim Preserve arrValues(i)
        arrRows(i) = emptyCellRow
        arrValues(i) = Cells(emptyCellRow, 5).Value
        i = i + 1
    End If
Next cell

If bIsEmpty = True Then
    For Each emptyRow In arrRows
        emptyRows = emptyRows & " " & emptyRow & " "
    Next emptyRow

    For Each emptyRow In arrValues
        emptyValues = emptyValues & " " & emptyRow & " "
    Next emptyRow
End If

If bIsEmpty = False Then
    MsgBox "All cells are filled in"
Else
    MsgBox "Empty rows: " & emptyRows
    MsgBox "Values in empty rows: " & emptyValues
End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...