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
文が実行されたときだけ何かしたいと思います。私は私の論理に多くの問題を抱えています。助けてください!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
文が実行されたときだけ何かしたいと思います。私は私の論理に多くの問題を抱えています。助けてください!vba:ループごとに最初に何かを実行してください。
var isExecuted = false
for each element in sarray
if ... then
if Not isExecuted Then
--do stuff
isExecuted = true
end if
end if
next element
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
は、おそらくこれを行うには良い方法はありますが、あなたは、真アウト開始し、if文でfalseに設定されますブール変数FIRST_TIMEを持つことができます。その後、私が正しくあなたを理解していればあなたはN個の要素を持っている、とあなたが最初の要素だけのためにいくつかの操作を実行したい
If first_time = True Then
Stuff
End If
それはvbaではないですか? –
それはもっと擬似コードに似ていましたが、ロジックは同じです... – user472875
@belisarius:これはこれまでのところ、この質問のVBAコードの唯一の部分です。あなたはコンパイルされません。また、@ CDeutschもそうではありません。 – GSerg
を確認することができます。だからあなたがしたいようにこれを行うには、プロセッサ時間の無駄です。
新しい論理変数を導入せずにロジックを書き直すことをお勧めします。よりクリーンで高速です。たとえば、次のようなものがあります。
Dim intCount As Integer
If (some condition) Then
DoSomething with sarray(0)
For intCount = 1 To sarray.Length
//Do something
Next intCount
これは配列の最初のオブジェクトではなく、条件を満たす最初のオブジェクトです。 sarray(5)がIf条件がTrueの最初のものであればどうなるでしょうか? – user472875
あなたはそれが条件を満たしている最初の要素だと考えていますが、正直なところ、何かが... ... thenの間に置かれる可能性があります。 – Wodzu
ループがすべて必要な場合は、「Exit For」をdo stuffルーチンの最後の行に追加します。 – ForEachLoop