我有一个非常好的代码,但是当我尝试实现一个小东西时,它没有按计划进行。代码如下所示:
'Bredd byggnad
Dim clValue1 As String
clValue1 = CStr(ThisWorkbook.Sheets("Indata").Range("C10").Value)
If clValue1 = vbNullString Then
MsgBox "Var vänligen ange en bredd på byggnaden"
Exit Sub
End If
If clValue1 = "0" Then
MsgBox "Var vänligen ange en bredd på byggnaden som är större än 0"
Exit Sub
End If
If CLng(clValue1) < 0 Then
MsgBox "Var vänligen ange en bredd på byggnaden som är större än 0"
Exit Sub
End If
If InStr(1, clValue1, ".") <> 0 Then
MsgBox "Denna cell får inte innehålla en punkt, ändra det till ett komma."
Exit Sub
End If
'Längd byggnad
Dim clValue2 As String
clValue2 = CStr(ThisWorkbook.Sheets("Indata").Range("C11").Value)
If clValue2 = vbNullString Then
MsgBox "Var vänligen ange en längd på byggnaden"
Exit Sub
End If
If clValue2 = "0" Then
MsgBox "Var vänligen ange en längd på byggnaden som är större än 0"
Exit Sub
End If
If CLng(clValue2) < 0 Then
MsgBox "Var vänligen ange en längd på11 byggnaden som är större än 0"
Exit Sub
End If
If InStr(1, clValue2, ".") <> 0 Then
MsgBox "Denna cell får inte innehålla en punkt, ändra det till ett komma."
Exit Sub
End If
If clValue2 < clValue1 Then
MsgBox "Längden på byggnaden måste vara större än bredden"
Exit Sub
End If
问题出现在最后一个if语句中:
If clValue2 < clValue1 Then
MsgBox "Längden på byggnaden måste vara större än bredden"
Exit Sub
End If
我想要它做的是,如果单元格C11中的值小于单元格C10中的值,则退出sub。
非常感谢任何帮助。
/ Rinor
答案 0 :(得分:2)
如果您在if
声明之前放置以下内容:
MsgBox "[" & clValue1 & "]"
MsgBox "[" & clValue2 & "]"
然后你可能看问题是什么。记下这些字符串变量中任何空格的特定注释。
很有可能,作为字符串,你会因为(例如)11
被认为小于2
而感到困惑,因为它使用字符串排序而不是数字排序。 / p>
如果是的情况,你可以用简单的东西修复它:
If CDbl(clValue2) < CDbl(clValue1) Then
答案 1 :(得分:1)
小于操作符“&lt;”不适用于字符串。尝试使用CInt(clValue1)将它们转换为Integers。