gpt4 book ai didi

excel - 如果第一个 IF 为 false,如何移动到数组中的下一个条目?

转载 作者:行者123 更新时间:2023-12-03 02:17:35 24 4
gpt4 key购买 nike

我有一个用户工具,其中客户的名字将放在一列中,而他们的姓氏将放在下一列中。

许多用户将全名放在第一列中。

如果第一列有数据,我试图确保第二列有数据。如果第二个没有,我想抛出一个消息框并将变量值更改为 1,然后停止该函数。如果两者都有数据,请检查列中的下一个单元格。

我当前的代码(我认为)检查第一个单元格是否为空白,如果不检查第二个单元格是否为空白。如果第二个单元格为空,它会弹出一个消息框并填充一个变量。一旦循环结束(在不同的模块中),就会检查此变量,如果其值大于 1,则停止后续进程。

我尝试添加 End If但这会阻止它工作。

Public Sub namesCheck()
Dim nameRange() As Variant
nameRange = Array("C10:C500") 'add all addresses here

Dim cell As Variant
For Each cell In nameRange
If IsEmpty(Worksheets("Input").Range(cell)) = False Then
If IsEmpty(Worksheets("Input").Range(cell).Offset(0, 1)) = True Then
MsgBox "Please format names correctly."
checkNet = 1
Else
Exit For
End If
End If
Next cell
End Sub

我目前了解到,如果第一个单元格为空,则没有说明该怎么做,但我不确定如何将其放入,我认为 Else 可以解决这个问题?如果第一个if为True,那么就不会执行第二个if并跳到最后?

目前,我收到“Next without For”错误,我猜测该错误与第二个 If 语句有关,因为我有一个类似的循环,其中只有一个 If 工作得很好。

我已经结束了我之前没有做过的第一个 If 语句。现在代码什么也没做。我已经测试了几个正确的行(两列中的数据)和一个不正确的行(第一列中的数据),并且它不会显示消息框。

难道我的第二个 If 没有完成从刚刚检查的单元格开始检查下一个单元格的工作吗?是否还有其他原因导致它没有选取第二列中的空单元格?

最佳答案

正确的缩进将有助于识别错误。考虑带有缩进的代码:

If IsEmpty(Worksheets("Input").Range(Cell)) = False Then
If IsEmpty(Worksheets("Input").Range(Cell).Offset(0, 1)) = True Then
MsgBox "Please format names correctly."
nameNet = 1
Else
Exit For
End If

现在应该很明显需要做什么来修复代码。只需添加 End If 作为最后一行代码即可。

If IsEmpty(Worksheets("Input").Range(Cell)) = False Then
If IsEmpty(Worksheets("Input").Range(Cell).Offset(0, 1)) = True Then
MsgBox "Please format names correctly."
nameNet = 1
Else
Exit For
End If
End If

现在继续解决您要解决的问题。设置断点并单步执行代码表明您只循环一次并且不满足指定的条件。假设您希望将 C 列从第 10 行旋转到第 500 行,我将按如下方式构建您的代码:

Public Sub Test()
Dim nameRange() As Variant
nameRange = Array("C10:C500") 'add all addresses here

Dim nr As Variant
Dim cell As Variant

For Each nr In nameRange 'assuming you may add more items to the array
For Each cell In Worksheets("Input").Range(nr)
If Not IsEmpty(cell) And IsEmpty(cell.Offset(0, 1)) Then
MsgBox "Please format names correctly."
checkNet = 1
Exit Sub 'as soon as you find a problem you are done
End If
Next cell
Next nr
End Sub

这可能可以由本网站上的一位 Excel 专家以更有效的方式编写,但由于不知道您问题的整个范围,我不会对您的代码进行太多更改。

关于excel - 如果第一个 IF 为 false,如何移动到数组中的下一个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57924918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com