2016-08-03 68 views
1

举例来说,我有两个数字0,1的列表,我想运行在VBA一个脚本是这样的:VBA - 有没有类似的列表?

for i in list: 
    if i in string: 
     do something 
    end if 

即我想先检查,如果“0”是一些字符串,然后做一些事情,然后检查字符串中是否有“1”,然后做一些事情等等。在python中,我将有一个元组[[0,1]]并且像那样做,但是我怎么去解决这个问题呢?在VBA中?

回答

4

你的意思是这样吗?可以使用阵列(我想是技术上当没有数据类型被定义的元组)

For Each i In Array("0", "1", "2", "3") 
    If InStr("1289", i) Then 
     '// Do Something 
    End If 
Next 

类似地:

Dim list As Variant 
Dim someString As String 

someString = "1289" 
list = Array("0", "1", "2", "3") 

For Each i In list 
    If InStr(someString, i) Then 
     '// Do Something 
    End If 
Next 

加成笔记:

InStr()没有按实际上返回True/False它返回另一个字符串中的子串的开始位置,从左到右读取。但是,在这种情况下,我们可以依靠VBA的隐式转换来评估大于0的任何值,因为True因为它在If语句中使用。

+0

确切的说,谢谢! – user33484

+0

只是一个额外的问题,如果我想打电话说,数组中的第三项 - 我该怎么做? – user33484

+0

假设你已经将数组赋值给一个变量:'MsgBox list(2)'(数组在VBA中默认为零,所以2实际上是第三项) –