这是我正在使用的代码.它非常简单,但仍未按预期工作.
Dim hey As Range
Set hey = Range("A1:A5")
For Each i In hey
If i.Value = "15" Then
i.Offset(0, 2).Value = "15" And i.Offset(0, 3).Value = "15"
ElseIf i.Value = 10 Then
i.Offset(0, 2).Value = "10" And i.Offset(0, 3).Value = "10"
ElseIf i.Value = 5 Then
i.Offset(0, 2).Value = "5" And i.Offset(0, 3).Value = "5"
ElseIf i.Value > 15 And i.Value = "*5" Then
i.Offset(0, 2).Value = "10" And i.Offset(0, 3).Value = "5"
Else: i.Offset(0, 2).Value = 10 And i.Offset(0, 3).Value = 10
End If
Next i
Run Code Online (Sandbox Code Playgroud)
现在,它所做的一切都是由2列和输出0抵消.我无法区分为什么和我在心理绳索的最后.我确信这是一件令人沮丧的事情.
我试过单步执行,它看起来像我的样本中的每个值正确评估,但仍然给我0值.此外,我正在玩引文,看看是否与它有关,但它们是我想要使用的字符串.
谢谢你的帮助.
这就是删除And语句的意思:
Dim hey As range
Set hey = range("A1:A5")
For Each i In hey
If i.Value = "15" Then
i.Offset(0, 2).Value = "15"
i.Offset(0, 3).Value = "15"
ElseIf i.Value = 10 Then
i.Offset(0, 2).Value = "10"
i.Offset(0, 3).Value = "10"
ElseIf i.Value = 5 Then
i.Offset(0, 2).Value = "5"
i.Offset(0, 3).Value = "5"
ElseIf i.Value > 15 And i.Value = "*5" Then
i.Offset(0, 2).Value = "10"
i.Offset(0, 3).Value = "5"
Else
i.Offset(0, 2).Value = 10
i.Offset(0, 3).Value = 10
End If
Next i
Run Code Online (Sandbox Code Playgroud)
编辑:
对于计算机程序,And是一个比较运算符.它不像人类那样理解它.在与另一个人讨论时,我们可以通过'和'将一系列任务链接在一起,并且不会混淆什么(除非任务本身令人困惑!).计算机用于And检查多个条件是否同时为真.在你最后Elseif你正确使用它来告诉计算机:"检查i.Value> 15,并检查i.Value='*5’.如果同时(因为的And语句)条件为真,那么运行下面的代码."
希望这有助于解释差异!
编辑2:
根据@litelite的建议,使用Like运算符.
ElseIf i.Value > 15 And i.Value Like "*5" Then
i.Offset(0, 2).Value = "10"
i.Offset(0, 3).Value = "5"
Run Code Online (Sandbox Code Playgroud)