我不确定这是否可行,但我想我会问,看看是否有人有任何明智的解决方案。
我正在创建一个VBA表单,人们将使用它来组装一个SQL字符串:“勾选此框以使此参数成为真正的”。
实现这一目标的显而易见的方法是
If Checkbox.Value Then
string = string + "@parameter = 1, "
Else
string = string + "@parameter = 0, "
End If
令人烦恼的是,这有点冗长。如果我可以做这样的事情会很好:
string = string + "@parameter = " + Checkbox.value + ", "
但我不确定这是否可行。有可能吗?
答案 0 :(得分:8)
您是否考虑过使用IIf
?
string = string + "@parameter = " + IIf(Checkbox.value, "1", "0") + ", "
您可以详细了解该功能here。
答案 1 :(得分:3)
在VBA中,True为-1,False为0,与Excel本身不同(True为1)。
string = string + "@parameter = " & CLng(Abs(Checkbox.Value)) & ", "
将False转换为零,将True转换为正值。 Abs可能会将其转换为数字,因此CLng可能过度杀伤。但我恳求可读性。
答案 2 :(得分:0)
更短的解决方案是:
string = string + "@parameter = " & -1 * Checkbox.Value & ", "