【发布时间】:2021-12-21 20:48:58
【问题描述】:
希望我能在这里得到帮助,我目前在我的 VBA 代码中使用 Dim Long,但由于我指的是多个列,所以代码变得很长。现在,我想尝试命名范围引用,但我无法使其工作。 这是我当前的代码:
Dim i As Long
For i = 8 To 500
'if details is incomplete
If Range("AA" & i).Value > 0 Then
If Range("AB" & i).Value = "Error" Or Range("AC" & i).Value = "Error" Or Range("AD" & i).Value = "Error" _
Or Range("AE" & i).Value = "Error" Or Range("AF" & i).Value = "Error" Or Range("AG" & i).Value = "Error" _
Or Range("AH" & i).Value = "Error" Or Range("AI" & i).Value = "Error" Or Range("AJ" & i).Value = "Error" _
Or Range("AK" & i).Value = "Error" Or Range("AL" & i).Value = "Error" Or Range("AM" & i).Value = "Error" _
Or Range("AN" & i).Value = "Error" Or Range("AO" & i).Value = "Error" Or Range("AP" & i).Value = "Error" _
Or Range("AQ" & i).Value = "Error" Or Range("AR" & i).Value = "Error" Or Range("AS" & i).Value = "Error" _
Or Range("AT" & i).Value = "Error" Or Range("AU" & i).Value = "Error" Or Range("AV" & i).Value = "Error" _
Or Range("AW" & i).Value = "Error" Or Range("AX" & i).Value = "Error" Or Range("AY" & i).Value = "Error" Then
MsgBox "One of the mandatory field is not provided, please check all cells highlighted in yellow & make sure details is provided."
End If
Endif
我命名范围 AA = "Validation" & range AB:AY = "Details" 我如何声明它并使用命名范围而不是一一写入每一列?
【问题讨论】:
-
我会在工作表中添加一个帮助列 - 使用
COUNTIF来计算“错误”,然后使用这个值 - 用于 AA 或 one 的条件格式消息框。如果有很多错误,使用您的代码用户可能会得到很多 msgbox。 -
谢谢你,你是对的,比定义每一列更好。我采纳了你的建议。
标签: excel vba validation range named-ranges