SPREADの空白行を削除するには?

解決


まー  2005-01-27 19:34:30  No: 119234

VB6.0  SPREAD3.0jをつかっているんですが、
行のセルが全て空白の時に、その行を削除したいんですが、
うまくいきません。なぜか空白でも残ってします行があります。
ロジックは

    chkFlg = False           'False=データなし(削除可)  で初期化
    For i = 1 To spread1.MaxRows
        spread1.GetText 1, i, text      
        If text = "" Then
            For j = 1 To spread1.MaxCols       
                spread1.GetText j + 1, i, text  
                If text <> "" Then               
                    chkFlg = True
                    Exit For
                End If
            Next J
            If chkFlg = False Then         
                With spread1                      
                    .Row = i
                    .Row2 = i
                    .BlockMode = True
                    .Action = ActionDeleteRow       
                    .BlockMode = False
                End With
            End If
            chkFlg = False
        End If
    Next I
と組んでいます。
ちなみにスプレットの行数、列数はデータの数により可変。
スペースはセルに入らないようになっています。
ロジックに問題はないように思うのですが、
何か気づかれた方いらしたらお願いします。


特攻隊長まるるう  2005-01-27 20:03:42  No: 119235

プログラムをステップ実行しながらどういった処理が
起こってるか確かめて下さい。多分、削除した時点で
削除行以降の行が上詰めされてズレてるんじゃないかな?
ループを逆に下(spread1.MaxRows)から回すか削除行を
考慮に入れて判定すればできると思います。
[考慮に入れる例]
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200408/04080040.txt


まー  2005-01-27 22:14:17  No: 119236

まるるうさんありがとうございました。
maxrowsからまわして解決でしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加