0

以下のコードで、私は次のことをしようとしています:

  • 最初の IF ステートメントに一致するファイルを検索
  • wbkOut で、2 番目の列に移動し、データ (下、上) を含む最初のセルを見つけ、それに値を割り当てて、後で do ループを開始する場所として参照できるようにします。
  • wbkVer で、データを含む最初のセルを見つけ、1 セル下にオフセットし、wbkout からのデータを 1 セルだけサイズ変更します。
  • 次に、wbkOut セルの値が wbkVer セルに追加されます。
  • 上記作品全て
  • うまくいかないのは次のピース
  • スクリプトが実行されている場合は、セルをオフセットして貼り付けます..また、wbkOut セルを 1 セル上にオフセットし、データを含む次のセルの検索を開始します。
  • Tenln の値がなくなるまで実行する

ループを適切に機能させることができません。提案はありますか? ありがとう!

編集: 最初の 2 つの値を取得でき、ループは無期限に実行され、他に何も見つかりません。

Dim strOutputFile As Variant
Dim wbkOut As Workbook
Dim tenln As Range
Dim tenlnPaste As Range
Dim hasRun As Boolean
Dim wbkVer As Workbook

    If strOutputFile(u) Like "*Lines.csv" Then
        With wbkOut.Worksheets(1)
        Set tenln = wbkOut.Worksheets(1).Cells(Rows.Count, 2).End(xlUp)
        Set tenlnPaste = wbkVer.Worksheets("TLines").Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(tenln.Rows.Count, 1)
            tenlnPaste.Value = tenln.Value
        hasRun = True
        Do
            If hasRun = True Then
            With wbkOut.Worksheets(1)
                tenlnPaste.Offset(1, 0).Value = tenln.Offset(-1, 0).End(xlUp).Value
            End With
            End If
        Loop Until tenln.value = ""
        End With
    End If
4

1 に答える 1

0

あなたが書いたもののdoループの問題は、変更していないtenlnため、最初に設定した値は同じままで、tenln = ""常にfalseになることです

これを正しく読んだらtenln範囲オブジェクトなので、代わりに for ループを使用できます。

For each c in tenln.cells

  'your code here
  If c.value = "" then exit for
Next
于 2013-01-15T13:42:24.290 に答える