我是VBA的新手。我正在使用带有用户在单元格A10:E10中选择的下拉列表的Excel工作表。我的宏对用户输入的信息进行数据验证。如果输入的数据不适合宏设置的参数,则会突出显示单元格。在宏的最后,我想要一个MsgBox,说明突出显示的单元格存在于x column / s中。这就是我所拥有的:
Sub CheckErrors()
Range("A11:E100000").Select
Dim high As Range
Dim c As Range
Set high = Selection
For Each c In high
If c.Interior.Pattern <> xlNone Then
MsgBox ("Please update highlighted cells in " & c.Column & " and run Data Validation again")
Exit Sub
End If
Next c
MsgBox ("Data verification is complete")
End Sub
而不是说c.Column我会理想地喜欢用于识别突出显示哪些单元格并在A10中显示列标题的代码:E10。例如,如果突出显示B24和C82,我希望MsgBox说明“请更新在电话号码和地址中找到突出显示的单元格”。 “电话号码”和“地址”分别是单元格B10和C10中的值,并且来自用户先前选择的下拉列表。
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
轻松!您已经通过获取列完成了大部分工作,您需要做的就是使用适当的行插入您的值并获得它。以下是您的消息框行的外观:
`MsgBox ("Please update hilighted cells in " & Cells(10, c.Column).value & " and run Data Validation again")`
我不确定你对单元格有多熟悉,但它是Cells(行索引,列索引),使用.Value属性返回该单元格的内容。假设您的标题位于工作簿的第10行,这可以帮助您获得所需内容。