
エクセルのマクロを組んでいて、なぜか実行すると意図しない文字が消えてしまいます
至急解消したいので、どうぞよろしくお願いします
N8から、数値が一列に並んでいて、「0」を消して行くという目的です
下記のような組み方をしています
すると、P列1行目からAF列まで入っていた文字が消えてしまいます
これを解消する方法を教えて下さい
'0を消す
Const intCriteria As Integer = 0
With Cells(8, 14).CurrentRegion
On Error GoTo errhandler
.AutoFilter Field:=14, Criteria1:=intCriteria
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.AutoFilterMode = False
Exit Sub
errhandler:
ActiveSheet.AutoFilterMode = False
MsgBox intCriteria & "はありません。"
No.2ベストアンサー
- 回答日時:
こんばんは。
>なぜか実行すると意図しない文字が消えてしまいます
With Cells(8, 14).CurrentRegion
この部分が問題です。
おそらく、セルが続いているからなのですが、CurrentRegion ではなく、8行目を左端にするように決めてください。CurrentRegion では曖昧です。
本来は、CurrentRegion のままでもできるのですが、回答者側では、レイアウトが分かりませんので、CurrentRegion のままで、コードを書くことはできません。
少し手直ししてみました。
'--------------------------------------
Sub Test1()
Const intCRITERIA As Integer = 0
On Error GoTo ErrHandler
'念のため
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
End If
With Range("N8", Range("N65536").End(xlUp).Offset(, 18)) '右は決めてください。現在は、AFまで
.AutoFilter Field:=14, Criteria1:=intCRITERIA
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.AutoFilterMode = False
Exit Sub
ErrHandler:
ActiveSheet.AutoFilterMode = False
MsgBox intCRITERIA & "はありません。"
End Sub
No.1
- 回答日時:
>、「0」を消して行くという目的です
下のコードを見るとN列のセルの値で0の行を削除するではないか。表現は正確に。
ーー
難しいフィルタたやxlCellTypeVisible
を使っているから勘違いが起こっているのでは。
参考
私は削除をやるときはForNextを使い、下行からやっている。上からやると大変。
簡単に
Sub test01()
d = Range("N65536").End(xlUp).Row
MsgBox d
For i = d To 1 Step -1
If Cells(i, "N") = 0 Then Cells(i, "N").EntireRow.Delete
Next
End Sub
で出来るが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 【至急】Excel 同一人物の情報を一行にまとめる(複数行) 6 2022/05/24 17:58
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルvbaで転記したのですが、数字のゼロが消えてしまいます。 ゼロも転記するためにはどうしたらい
Excel(エクセル)
-
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
5
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
6
エクセルVBAのエディターが上書きモード?に・・・・。
Excel(エクセル)
-
7
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
8
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
9
エクセルVBAのメニューバー&リボンを再表示させる方法について
Excel(エクセル)
-
10
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
excel 小さすぎて見えないセル...
-
エクセルで特定の文字列が入っ...
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
【Excel関数】UNIQUE関数で"0"...
-
excelのデータで色つき行の抽出...
-
背景色のついたセルの合計数を...
-
Excel グラフのプロットからデ...
-
2つのブックで、1レコードの3列...
-
Excelのフィルター後の一番上の...
-
エクセル マクロ オートフィ...
-
VBA マクロ エラー1004 アプ...
-
Openoffice calc セルの結合に...
-
エクセルVBAのEntireRow.Hidden...
-
Excel ウインドウ枠の固定をす...
-
[EXCEL]ボタン押す→時刻が表に...
-
直近の5個の平均を求めたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報