

行削除した後の連番を崩れないようにできませんか?
関数では試してできてはいるのですが
結局関数をA列に作っておく必要があるのと削除していくと減っていくので
自分以外の方が作成しない可能性があるので
コードで削除時に作れればありがたいなと思います
Sub CommandButton1_Click()
Dim I, lRow As Long
Dim sht As Worksheet
Dim r0 As Integer
ComboBox1.ListIndex = 0
lRow = Cells(Rows.Count, "C").End(xlUp).Row 'C列の最終行を取得します。
For I = lRow To 2 Step -1 '最終行から2行目まで繰り返す。
If Me.ComboBox1 = "" Then
MsgBox "氏名が入力されてません"
Exit Sub
End If
If Cells(I, "C") = ComboBox1 Then 'C列の氏名を判定します。
Rows(I).Delete '該当する行を削除します。
End If
Next
’Unload UserForm3 ’今は停止中
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> 現在、A2には=IF(B2="","",ROW()-1)を入れています
> A3に=if(RC[2]="", "",ROW()-1)でしょうか?
> それともA2?
Excel の参照形式がA1になっているなら、シートの連番が始まるセル(例えば2行目 / A2)に、名前の列”C"の記入の有無を見て連番を表記するとすれば
=IF(C2="","",ROW()-1)
をシートのA列2行目のセル(A2)に書き込めばいいです。
VBA で作るのであれば、「ThisWorkbook」に例えば以下のコードを書いてやれば行を削除したときや氏名を追加したときなどシートに変更があった時このコードが実行されてA列の最終行の次の行に参照式が書き込まれます。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i As Long
Application.EnableEvents = False
With Sh
i = .Cells(10000, 3).End(xlUp).Row
.Cells(i + 1, 1).FormulaR1C1 = "=if(RC[2]="""", """",ROW()-1)"
End With
Application.EnableEvents = True
End Sub
No.3
- 回答日時:
VBA関数が正常に動作するならそのままにして、A列に連番(上の番号に1を足す)を入れる参照式を入れておけばどうでしょうか?
C列に氏名が記入されているときのみ表示するように参照式を入れておけば番号は氏名が記入されていない行は表示されないので見苦しくならないと思います。例えば連番が2行目から始まっているとすれば
=if(RC[2]="", "",ROW()-1)
ROW()は現在の行番号なので2行目からの場合-1で連番の数字を調整できます。作られた削除関数の最後にこの参照式をA列に書き込ませるようにすればいかがでしょうか。
現在、A2には=IF(B2="","",ROW()-1)を入れています
A3に=if(RC[2]="", "",ROW()-1)でしょうか?
それともA2?
No.2
- 回答日時:
ざっくりと。
Dim I, lRow As Long
これで、「I」と「lRow」をLongデータ型(整数)として使うってことのように思えちゃうけど、
・「I」は"なんか入れる"のに使うよ!←Variant型
・「lRow」は"整数として"使うよ!
って宣言になっちゃう。
「I」も整数として使うなら、
Dim I As Long, lRow As Long
って書くの。面倒くさいけどね。
質問のコードでは影響ないでしょうけど、頭の片隅にいれときましょ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字を変換するマクロ
-
重複を除いて抽出
-
エクセル vbaのなぜこうなるの...
-
マクロで最終行を取得してコピ...
-
マクロで教えてください。
-
Excelのマクロについて教えてく...
-
マクロでLen関数の使い方がわか...
-
Excelのマクロについて質問です...
-
VBAで入力の結果を他のセルに反...
-
Excel VBAの質問。行のコピーと...
-
EXCEL VBAでA列にある空白行よ...
-
同一値が連続している列の削除
-
縦型カレンダーを横型にできま...
-
Access2003レポート:最終ペー...
-
VB.net
-
エクセル住所録でフラッグの個...
-
VBA A列の最終行まで行数をカウ...
-
【マクロ】A列最終行までを、カ...
-
複数セルの入れ替え方法 excel vba
-
【マクロ】元データと同じお客...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
Excel VBAでオートフィルタで抽...
-
数値に見えるものはすべて数値...
-
VB.net
-
列から特定の文字列検索→該当以...
-
エクセルで空白行を削除する ...
-
Excel マクロ 検索結果を別シ...
-
エクセルのデータがない行には...
-
【マクロ】A列最終行までを、カ...
-
【VBA】条件に一致しない行を削...
-
各個体に対する平均値の自動計...
-
エクセルのVBAで指定した行数の...
-
EXCEL VBAでA列にある空白行よ...
-
VBAでの重複データに色付け
-
空白を複数行一気に挿入するには?
-
エクセルで階層図を作る方法
-
vbaエクセルマクロについて she...
-
【至急】Excel 同一人物の情報...
-
Excel97 指定した行だけマク...
おすすめ情報
すみません、連番崩れなくなったのですが
削除した分だけ連番が残るんですが削除した分の連番消せないですか?
すみません、連番崩れなくなったのですが
削除した分だけ連番が残るんですが削除した分の連番消せないですか?
ごめんなさいm(__)m
どのコードに記載すればよいのでしょうか?
行削除コードに追加でしょうか?