Excel VBA代码,用于根据其他单元格的数据检查单元格是否为空白

问题描述 投票:0回答:1

我有一个电子表格,每天有多个用户填写并打开。在此电子表格中,存在三个单独的是/否问题。如果输入是,则必须在以下列中输入数据。我想制作一个VBA代码来检查并确保输入了此数据,因此我们不必继续将电子表格发送回用户以填写丢失的数据。

我的数据是这样设置的:K12:K111,M12:M111和P12:P111都是“是/否”列,而L12:L111,O12:O111和Q12:Q111是仅在以下情况下需要文本的单元格在K,M或P列中输入“是”。有人可以帮我编码吗?

理想情况下,我希望在电子表格上放置一个ActiveX按钮以运行VBA代码。我还希望它显示一个对话框,告诉哪些单元格需要输入数据。任何帮助将不胜感激!

excel vba activex
1个回答
0
投票

您可以尝试以下操作:

Option Explicit

Sub test()

    Dim rngK As Range, rngM As Range, rngP As Range, cell As Range
    Dim Counter As Long

    Counter = 0

    With ThisWorkbook.Worksheets("Sheet1")

        Set rngK = .Range("K12:K111")
        Set rngM = .Range("M12:M111")
        Set rngP = .Range("P12:P111")

        For Each cell In rngK

            If cell.Value = "Yes" And cell.Offset(0, 1).Value = "" Then

                cell.Offset(0, 1).Interior.Color = vbRed
                Counter = Counter + 1

            End If

        Next cell

        For Each cell In rngM

            If cell.Value = "Yes" And cell.Offset(0, 2).Value = "" Then

                cell.Offset(0, 2).Interior.Color = vbRed
                Counter = Counter + 1

            End If

        Next cell

        For Each cell In rngP

            If cell.Value = "Yes" And cell.Offset(0, 1).Value = "" Then

                cell.Offset(0, 1).Interior.Color = vbRed
                Counter = Counter + 1

            End If

        Next cell

        If Counter > 0 Then

            MsgBox "Please fill red highlighted fields!"

        End If

    End With

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.