[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA 条件どおりに削除してくれない。』(らくしゅん)
VBA初心者です。
数字と会社名が入っているシートで、指定した数より小さい数字の会社名は 列ごと削除していく ということがしたいのですが、 例えば 指定した数字(k)が15だったとした時、10〜14は削除されますが、 一桁の1〜9は削除してくれません。(正しくは1〜14を削除してほしい)
また、指定した数字(K)が5になると、1〜4、と10以上も削除してしまい、残るのは6〜9までになってしまいます。(正しくは1〜5を削除してほしい)
試しにKの部分を15や5に変更して実行してみると正常に動作するので、kの変数に原因があるのでしょうか?
色々と試してみましたが、どうしても上手くいきませんので、教えていただきたく、投稿しました。よろしくお願いいたします。
Dim gyo As Integer
Dim sita1 As Integer Dim k As String
k = 売上台帳.ComboBox2.text
sita = ActiveCell.Address() sita1 = Range("sita").Row
For gyo = sita1 To 2 Step -1
If k > Cells(gyo, 15) Then Rows(gyo & ":" & gyo).Select Selection.Delete shift:=xlUp End If
Next gyo
< 使用 Excel:Excel2016、使用 OS:Windows10 >
15列目に入力されているのが数値ならば、k はString型ではなく、Long型にすれば良いです。 15列目が数字と会社名がくっついた文字列ならば、前ゼロを付けて数字部分の桁数を合わせるとか、比較の際に数字だけ抜き出して数値にして大小比較しましょう。
(???) 2018/05/10(木) 12:50
直接的な回答は???さんに出していただいたので・・
名前の定義でもしてないと、そもそもエラー起こりませんか? せめてこんな感じではないでしょうか。
Sub TEST() Dim gyo As Integer Dim sita As Integer Dim k As Long k = 売上台帳.ComboBox2.Text sita = ActiveCell.Row For gyo = sita To 2 Step -1 If k > Cells(gyo, 15).Value Then Rows(gyo).Delete End If Next gyo End Sub (ろっくん) 2018/05/10(木) 12:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.