VBA中,假如一共有100个00-99的数组,我输入这个数组中其中的一部分,如何能输出剩下的一部分?
比如:输入“00 01 02 03....98”, 然后输出没有的“99”。VBA代码该怎么写?
Private Sub CommandButton1_Click()
Dim arr(100) As String
Dim tmparr
Dim newarr(100) As String
tmparr = Array("1", "2", "8") '这里定义你想输入的数组
'生成1-99的数组
Dim i As Integer
For i = 0 To UBound(arr)
arr(i) = i + 1
Next i
'判断输入的数字是否和1-99数组从的值重复,不存在就放入新的输出用数组
Dim j
Dim sameflg As Boolean
Dim count As Integer: count = 0
For i = 0 To UBound(arr)
sameflg = False
For j = 0 To UBound(tmparr)
If arr(i) = tmparr(j) Then
sameflg = True
End If
Next j
If sameflg = False Then
newarr(count) = arr(i)
count = count + 1
End If
Next i
’msgbox输出 输出用数组 (里面是没有被输入的数)
Dim showStr As String
For i = 0 To UBound(newarr)
If newarr(i) = "" Then
Exit For
End If
showStr = showStr & newarr(i) & ","
Next i
MsgBox showStr
End Sub
Dim arr(100) As String
Dim tmparr
Dim newarr(100) As String
tmparr = Array("1", "2", "8") '这里定义你想输入的数组
'生成1-99的数组
Dim i As Integer
For i = 0 To UBound(arr)
arr(i) = i + 1
Next i
'判断输入的数字是否和1-99数组从的值重复,不存在就放入新的输出用数组
Dim j
Dim sameflg As Boolean
Dim count As Integer: count = 0
For i = 0 To UBound(arr)
sameflg = False
For j = 0 To UBound(tmparr)
If arr(i) = tmparr(j) Then
sameflg = True
End If
Next j
If sameflg = False Then
newarr(count) = arr(i)
count = count + 1
End If
Next i
’msgbox输出 输出用数组 (里面是没有被输入的数)
Dim showStr As String
For i = 0 To UBound(newarr)
If newarr(i) = "" Then
Exit For
End If
showStr = showStr & newarr(i) & ","
Next i
MsgBox showStr
End Sub
觉得好用记得给分哦
(话说只有5分~~这种题起码10分啊= =)
追问我复制到txt文档然后以.vbs保存,无法使用哦,帮人帮到西拉,,,怎么弄,回头多给你分
追答不是~~不用弄进vbs~你在excel里插入一个button控件(默认就叫CommandButton1),双击这个button就会进入这个CommandButton1_Click方法 把方法内的代码复制进去,就可以运行了。
对了,第29行的那句是注释,前面的单引号改成半角的,不然不会被解释成注释~~没变绿色,这也可能是VBS报错的原因
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-06-28
将输入的放到一个数组中,然后再用for 来产生00-99的数,到数组中查找,如果找到了就跳过,没找到就输出 。追问
我还是写不来。。我对代码不是很熟悉
第2个回答 2013-06-28
dim aa()
redim aa(k=0 to 99 )你的问题我看不明白,但是只要你定义好了数组,输入输出应该是可以随心所欲的
redim aa(k=0 to 99 )你的问题我看不明白,但是只要你定义好了数组,输入输出应该是可以随心所欲的