0

Excel のステートメントのサイズを txt ファイルに縮小し、データのない空のセルをスキップするにはどうすればよいですか。以下は私のコードのごく一部ですが、少なくとも 204 行の長さで、非常に冗長です。

Private Sub CommandButton1_Click()
Open (Cells(3, 4)) For Output As #1
   If Len(Cells(5, 6)) <> 0 Then Print #1, Replace(Cells(5, 2), "-", ""); ","; Trim(Cells(5, 6)); ","; Trim(Cells(5, 8))
   If Len(Cells(6, 6)) <> 0 Then Print #1, Replace(Cells(6, 2), "-", ""); ","; Trim(Cells(6, 6)); ","; Trim(Cells(6, 8))
If Len(Cells(7, 6)) <> 0 Then Print #1, Replace(Cells(7, 2), "-", ""); ","; Trim(Cells(7, 6)); ","; Trim(Cells(7, 8))
If Len(Cells(8, 6)) <> 0 Then Print #1, Replace(Cells(8, 2), "-", ""); ","; Trim(Cells(8, 6)); ","; Trim(Cells(8, 8))
If Len(Cells(9, 6)) <> 0 Then Print #1, Replace(Cells(9, 2), "-", ""); ","; Trim(Cells(9, 6)); ","; Trim(Cells(9, 8))
If Len(Cells(10, 6)) <> 0 Then Print #1, Replace(Cells(10, 2), "-", ""); ","; Trim(Cells(10, 6)); ","; Trim(Cells(10, 8))
End Sub
4

2 に答える 2

0

インデックス 6,7,8... をループ変数に置き換える for ループを使用するだけです。

于 2013-07-20T01:25:52.083 に答える
0

For..Eachループを調査できます/調査する必要があります。

Dim rngGet As Range
Dim rng As Range

Set rngGet = Range(Cells(5, 6), Cells(10, 6))
'or Range("F5:F10")
For Each rng In rngGet
    'do something with rng
Next 'rng

MSDN の範囲をループする

于 2013-07-19T22:23:14.117 に答える