**** UPDATEを処理しません。以下に示すコードは、1行を除いて意図したとおりに動作します。VBAエクセルループがこの*****誰もこの結論に私を導くためにあなたの助けをありがとう解決されている!私の中******</p> <p>だから、すべてのアレイ
If c = myArray(x) Then
このスクリプトでは、私がunmentioned残っているファイルを読み込み。ファイルから 'A'列を読み取り、各行をmyArray
にスローします。私はダイアログボックスにループアウトすると、データを適切に出力するので、配列が機能することが分かります。ループは適切に各行を検索し、 'c'に等しい場合はデータを取得して別のシートに配置します。私はこれがうまくいくことを知っている私の問題は、myArray(x)
という要素を整数 'c'と比較するために追加しようとするときです。それは整数 'x'でmyArray()
を適切にループするためにx整数を見ることを拒否します。
誰かが私に説明してください。myArray(x)
が適切にループしないか、解決策を手伝ってくれるのですか?私はベテランのVBAプログラマーではありませんが、私は正当に機能するコードを書いています。私はちょっとした細部が見当たらず、簡単なことを見落としたような気がします。助けを借りれば、これは仕事目的のためのものであり、自分自身だけでなく、他人を助けてくれることに感謝します。
Sub myArray()
Dim FSO As Object, MyFile As Object
Dim FileName As String, Arr As Variant
Dim c As Range
Dim j As Integer, i as Integer
Dim Source As Worksheet, Target As Worksheet
FileName = "" '<--This is left intentionally blank.
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.OpenTextFile(FileName, 1)
Arr = Split(MyFile.ReadAll, vbNewLine)
Set Source = ActiveWorkbook.Sheets("Sheet1")
Set Target = ActiveWorkbook.Sheets("Sheet2")
i = 0
j = 1
For i = LBound(Arr) To UBound(Arr)
For Each c In Source.Range("B:D")
If c = Arr(i) Then
Source.rows(c.Row).Copy Target.rows(j)
j = j + 1
End If
Next c
Next i
End Sub
何が*** xの値は***です?? –
配列の上限を超えていないかどうかを評価するには 'if c = myArray(x)Then Then'行をチェックしてください。 'c = myArray(x)とx <= ubound(myArray)Then'のようなものです。 –
X = 0である必要があります。 これは私のForループでは機能しませんでしたが、それでも値は比較されません。 –