excel - 验证内容-不允许用户输入-给出无效数据报告

标签 excel vba

我正在尝试编写一个程序来执行以下步骤:

  • 在单元格 M2 时,检查列之前所有单元格的内容 M 在同一行
  • 如果同一行中 M 列之前的任何单元格为空,则执行 不允许用户在单元格 M2 中输入任何值。而是给了一个消息 向用户告知空数据。
  • 在单元格 N2 中创建缺失数据的报告(第一行 Excel 的列中包含数据标题)

目前遇到的问题: 无限循环 - 我认为当清除内容时再次触发循环会导致此问题

我不确定连接代码是否好。

程序如下:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$M$2" Then    
MsgBox "1"    
Call MyMacro    
End If    
End Sub


Sub MyMacro()

'If [OR(ISBLANK(A2:L2))] Then
If ISBLANK(A2) Then
MsgBox "2"
Range("N2").Select
ActiveCell.Value = N2.Value + A1.Value
'Range("M2").ClearContents
'MsgBox "3"

'this the message that pops up if any cell in the range is blank
End If

End Sub

感谢您提前回复...

最佳答案

另一个不使用宏的选项是使用 M 列中的数据验证和自定义公式

=counta(A2:L2)=12

以及自定义错误消息“A 至 L 列中的空白单元格”。

这当然不会给你丢失的单元格,但你可以用这个数组公式得到第一个单元格(用ctrl+Shift+enter输入)

=IFERROR(ADDRESS(ROW(),MATCH(TRUE,A2:L2="",0)),"")

关于excel - 验证内容-不允许用户输入-给出无效数据报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281760/

相关文章:

sql - 使用 SQL 将今天的日期插入 Access 表中

excel - 将 "&"符号插入 Office 功能区 XML 控件的 Label 属性

python - 我可以使用 SQL 将存储为 CSV(逗号分隔值)的表列的内容拆分为新表中的各个行吗?

c# - NPOI - 加载 Excel 文件会导致错误的本地 header 签名 : 0xE011CFD0

Excel - 从不到一分钟的时间减去超过一分钟的时间

javascript - 如何使用getelementsbytagname提取LI值

excel - 访问共享网络文件夹

excel - 使用数组检查 PivotItems.Name <> Array Then PivotItems.Visible = False

excel - 如何在文本框中允许仅 double 据类型?

oracle - 将变量从 Access(前端)传递到 Oracle(后端)存储过程