vba:每个循环只对第一个做一些事情

时间:2010-11-19 19:06:27

标签: excel vba

for each element in sarray
  if ... then
     if this is the first time the above IF statenent was executed ... then
  end if
next element

我想在第一次执行第一个IF THEN语句时做一些事情。我的逻辑问题很多。请帮忙!

4 个答案:

答案 0 :(得分:4)

var isExecuted = false
for each element in sarray
  if ... then
     if Not isExecuted Then
        --do stuff
       isExecuted = true
     end if
  end if
next element

答案 1 :(得分:2)

flag = true
For each ...
   if flag 
       do whatever with first element
       flag = false
   endif
   do what you want with all elements ... including the first
next

答案 2 :(得分:2)

可能有一种更好的方法可以做到这一点,但你可以有一个布尔变量first_time,它将以true开头,并在if语句中设置为false。然后你可以检查

If first_time = True Then
   Stuff
End If

答案 3 :(得分:2)

如果我理解正确,你有N个元素,并且你只想对第一个元素执行某些操作。因此,按照您想要的方式执行此操作会浪费处理器时间。

所以我建议在不引入新的布尔变量的情况下重写逻辑。它更干净,更快。像这样的东西:

Dim intCount As Integer    

If (some condition) Then
  DoSomething with sarray(0)
For intCount = 1 To sarray.Length
     //Do something
Next intCount