こんにちは私はVBAのマクロでExcel用に取り組んでいます。私は以下のようにコード内に入れ子のforループを持っています。 2番目のループは実行されません。 2番目のループ内のMsgBox()コマンドでも何の動作も起こらず、プログラムはエラーが報告されていないネストされたループをスキップするように見えます。平易な英語でVBAネストされたforループは実行されません
このネストされたループする必要があります
1)は、最初のループの配列categories_string()内のiエントリから文字列を取ります。
2)は、第2のループのExcelファイル(の列「AE」の300+の行を反復、「長さ」は「AE」におけるデータの列)
3)探しの長さであります文字列が一致し、変数を0(if文)に設定したcategories_value配列の対応するエントリに1を追加します。
For p = 1 To length
へ
For i = LBound(categories_string) To UBound(categories_string)
For p = 1 To p = length
If Worksheets("sheet1").Cells(p + 2, "AE").Value = categories_string(i) Then
categories_value(i) = categories_value(i) + 1
End If
Next
Next
'p = 1 To length' –
既に配列を操作する方法を知っているので、列AEの値を配列に入れて、それを循環させるのはどうですか?セルをループさせる方が速いでしょう。 'AEArray = Worksheets(" sheet1 ")。Range(" AE3:AE "&length).Value'この配列の代わりに別のループを実行します。 –
あなたの答えはそれを修正しました。そして素晴らしい提案!これはVBAを使用して私の2日目ですので、任意のアドバイスをいただきありがとうございます。 – PSwalker