我想用相同的变量使用不同的数据类型并做一些计算。 例如,我使用的是可变的“选项”中,对不同的数据类型使用相同的变量
If option = 1 then
Do this
Elseif option = "X" then
Do this
Elseif option = 6 then
Do this
Endif
有什么办法,我可以得到这个工作?
我想用相同的变量使用不同的数据类型并做一些计算。 例如,我使用的是可变的“选项”中,对不同的数据类型使用相同的变量
If option = 1 then
Do this
Elseif option = "X" then
Do this
Elseif option = 6 then
Do this
Endif
有什么办法,我可以得到这个工作?
您可以使用变体来允许在一个变量内部使用不同的数据类型。下面的代码工作。
Public Sub TestVariant()
Dim x As Variant
x = 17
If x = 1 Then
' Do this
ElseIf x = "bob" Then
' Do this
ElseIf x = 17 Then
' This is done
End If
End Sub
关闭我的头顶,这虽然闻起来有点。将变量严格定义会更好。如果你正在处理也可能是字符串的数字,你总是可以将数字转换为字符串。例如:
Public Sub TestVariant()
Dim x As string
x = "1"
If x = "1" Then
' Do this
ElseIf x = "bob" Then
' Do this
ElseIf x = "17" Then
' This is done
End If
End Sub
编辑:在Excel中编译和按预期工作的另一个示例。
Public Function TestVariant(theOption As Variant)
If theOption < 0 Then
TestVariant = "Negative"
ElseIf theOption = 6 Then
TestVariant = "Six"
ElseIf theOption = "Stuff" Then
TestVariant = "Other Stuff"
Else
TestVariant = theOption
End If
End Function
我遵循同样的方法。 我的函数是这样的,函数fcComm(oddsId As Integer,agt As String,ma As String,sma As String,Option As Variant)。我在excel中使用了相同的函数as = fcComm(A3,B4,C4,D4,-6)。我的条件内的功能是如果选项<0然后做到这一点。不过,我确实收到单元格中的#VALUE错误。可能是什么问题 ?我已经使用了相同的函数来处理不同的条件,比如If Option = 1,它运行良好。 – Shan
我假设你实际上没有使用变量选项,因为它是保留的,它并不真正起作用。这听起来像你有另一个错误。如果你看看我的编辑,我可以让它在Excel中工作。尝试发布更多的实际代码。 – lfrandom
如果您声明option
为Variant
您应该很好去。
如何将值分配给“选项”?是否可以将1和6作为字符串?另一个选项可能是让另一个变量保存“X”,如果该变量设置为一个值,将选项设置为0 ... – sous2817
我正在阅读一行中的选项。可能的选项可能是1,一组中的X和2,整数0至6,另一组中的-1至-6。我想在这里使用相同的变量。因此,对于第一组,我可以将选项视为字符串,将第2组视为整数。对于第2组,我希望使用如下条件:如果选项> 0或选项= 0或选项<0覆盖-1到-6,0和1到6的所有可能值。请提供建议。 – Shan