我想创建一个宏来验证是否填写了非连续范围,然后删除包含值的最后一行后面的空行。VBA来验证,如果非连续范围包含值
在上述图像,列A,d,G,H,I是强制性字段。如果其中包含一个值,其余的必填字段也必须包含一个值。绿色突出显示的单元格是通过验证的输入示例,而黄色将需要失败,因为A和G中的值未填写。
我已经试过以下:
Sub Validate()
Dim Cell As Range
For Each Cell In Union(Range("A2:A3"), Range("D2:D3"), Range("G2:G3"), Range("H2:H3"), Range("I2:I3"))
If IsEmpty(Cell) Then
MsgBox ("Error: All mandatory fields must be filled out") 'actions To Do If True
End If
Next
End Sub
的问题是,行数将每次不同用户的输入信息,一旦他们这样做,他们会留下空白行的其余部分。我不太清楚如何继续,因为我对VBA和编码一般都很陌生。我希望能够检查这些必填字段的某种循环,并且一旦遇到空行就会停止执行这个技巧,但是我再次对编码并不了解。
我发现VBA删除空行,如下所示,并希望在验证完成后运行该行。
不确定是否有任何意义,如果您需要澄清,请让我知道。任何和所有的帮助,非常感谢!
因此,如果任何一行有A,D,G,H或I列中的任何一个条目,那么必须有一个条目?其他栏中是否有任何数据? – SJR
正确的,如果A,D,G,H或I列中的任何一个条目都有条目,那么必须有条目。在B,C,E,F,J或K列中也可能有值,但不是强制性的。 K将是可能包含值的最后一列。 – JC3