[[20221203121148]] 『最終行が「0」の列を最終列まで削除したい』(師走) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『最終行が「0」の列を最終列まで削除したい』(師走)

1列目から10列目まで1行目が空白の場合に列を削除する下記マクロは理解できたのですが、最終列にSUM関数があり、「0」の列を最終列まで削除したいのですが変数の使い方を教えてください。

Sub 空白列削除()
Dim l As Long

    For l = 10 To 1 Step -1
        If Cells(1, l) = "" Then
            Columns(l).Delete
        End If
    Next i
End Sub

< 使用 Excel:Office365、使用 OS:Windows10 >


■1
↓が理解できたってこですよね?
       ↓ここが1行目
 Cells(1, l)
          ↑ここがl列目

ならば、各行の【最終列】が0かどうかを判定して、行全体を削除すればよいでしょう。

■2
なお、新しい質問をするのも結構ですが↓もちゃんと始末するべきでしょう。
[[20221202113059]] 『日付の重複削除できない』(師走)
[[20221202144938]] 『オートフィルターのカウントが違うのは何故ですか』(師走)

(もこな2) 2022/12/03(土) 12:46:23


下記のコードで「0」を見つけ列を削除しようとしましたが、「Column(j).Delete」でエラーSUBまたはFunctionが定義されておりませんとなります。解決策を教えてください。
Sub 数字がゼロの列を一括削除()
    Dim i As Long
    Dim j As Long
    Dim LastRow As Long
    Dim LastClm As Long
    '最終列
    LastClm = Range("C2").End(xlToRight).Column
    '最終行
    LastRow = Cells(Rows.Count, 3).End(xlUp).Row
    '行をループ
    For i = LastRow To 1 Step -1
        '列をループ
        For j = 2 To LastClm
            '値が0だったら
            If Cells(i, j) = "0" Then
                '最終列まで0だったら
                If j = LastClm Then
                    '列削除
                    Column(j).Delete
                End If
            Else
                '値に0以外があったら、次の行へ
                Exit For
            End If
        Next j
    Next i
End Sub
(師走) 2022/12/03(土) 23:50:12

■3
やりたいことがよくわかりませんが、エラーが発生したときに「j」には何が入っていたのでしょうか?

■4
「0」と「"0"」では意味が違いますがそこは理解できてますか?
(SUM関数で求めた結果なんですよね?)

(もこな2) 2022/12/04(日) 08:32:42


 >Column(j).Delete
    ↓
   Columns(j).Delete

(半平太) 2022/12/04(日) 09:20:44


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.