Excel VBA 質問スレッド No.194 (解決済)

特定の勘定コードが入っているものの仕訳削除

投稿者 : さめ     投稿日時 : 2021/03/17(Wed) 00:28:06     OS : Windows 10     EXCEL : Excel 2016
特定の勘定コードが入っているものの仕訳を削除したいです。

B列(勘定コード)=1000000の仕訳ID(A列)を取得して、A列が該当のIDの行を削除するというロジックを繰り返して入れようとしているのですが、何行か残ってしまいうまくいきません。


下記例だとbの仕訳のみ残るようにしたいです。
A:仕訳 B:勘定コード
a 1000000
a 1200000
b 1300000
b 1200000
c 1300000
c 1000000
d 1300000
d 1200000
d 1000000
d 1300000


作成しているコードは以下になります。

Sub Temp()
Dim i As Long, j As Long, k As Long
Dim Gcode As Long

j = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To j

If Cells(i, "B").Value Like "1000000*" Then
Gcode = Cells(i, "A").Value

For k = 2 To j
If Cells(k, "A").Value = Gcode Then
Rows(k).Delete

End If
Next
End If
Next

End Sub

[返信 1] Re : 特定の勘定コードが入っているものの仕訳削除
投稿者 : 田中太郎     投稿日時 : 2021/03/17(Wed) 10:38:25
行を削除した時点で行の数が変わるためkを-1しないと行を一つ飛ばしになってしまいます。
あとGcodeは文字列なのでString型ですね。


Sub Temp()

Dim i As Long, j As Long, k As Long
Dim Gcode As String

j = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To j
If Cells(i, "B").Value Like "1000000*" Then
Gcode = Cells(i, "A").Value

For k = 2 To j
If Cells(k, "A").Value = Gcode Then

Rows(k).Delete
k = k - 1
End If
Next k
End If
Next i

End Sub

[返信 2] Re : 特定の勘定コードが入っているものの仕訳削除
投稿者 : さめ     投稿日時 : 2021/03/17(Wed) 16:26:16

田中太郎さん

早速の回答ありがとうございます、無事うまく動きました!
当方VBA初心者ですが仕事で必要ですごく困っておりました。

本当にありがとうございました!

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2021-04-21 07:17:34 )

Page
Top