Worksheets("顧客名")のA列に1から順に数値が入っています。
例えばTextShoyu1の値が5の時はA列に5が入った行を削除するために以下のように書きました。
イベントとしては思い通りになったのですが、ループ処理に非常に時間がかかります。
どこを修正すればスムーズな処理が出来るでしょうか?
よろしくお願いいたします。
Private Sub CommandButton1_Click()
Dim i As Long
For i = Range("A1").End(xlDown).Row To 2 Step -1
With Worksheets("顧客名").Cells(i, "A")
If _
.Value Like Me.TextShoyu1.Value Then
.EntireRow.Delete
End If
End With
Next i
End Sub
No.1
- 回答日時:
ちょっとスマホなんで、コード載せたり検証は出来ませんけど、
とりあえずイコールよりライクの方が検索には時間かかります。
ちなみに何件くらい?
ExcelにはFindメソッドがあるので、おそらくそっちの方が高速です。組み込み系なんで。
ちょっと試してみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
顧客CDのCDって?
-
突合結果はプルーフリストのことか
-
ファイルメーカー リスト形式...
-
エクセルデータのマッチング
-
エクセルでのデータ拾い
-
エクセルマクロ ブックをアクテ...
-
アクセス ACCESS VBAで入力の...
-
現在、日興証券で重大なトラブ...
-
顧客データと請求書、売上帳を...
-
エクセル2010の書類を整理・保...
-
リストボックスからシート削除...
-
【エクセル】TextBoxの数値の入...
-
EXCELシート内の数字での並び替...
-
エクセルで、毎月顧客管理して...
-
読み取ったQRコード/バーコード...
-
エクセルでバーコード作成し使...
-
クロネコヤマトで、バイトして...
-
EXCELでバーコードを作成すると...
-
振込請求書が破れてしまいました
-
商品に印字してあるバーコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
現在、日興証券で重大なトラブ...
-
顧客CDのCDって?
-
<新設税理士事務所です>ミロ...
-
エクセルで「3次元配列」表の...
-
VBA リストボックス反映できない
-
VBA。リストボックスの値を別の...
-
エクセルVBA テキストボックス検索
-
EXCELシート内の数字での並び替...
-
エクセルデータ。容量を減らす...
-
エクセルで並び替えするとハイ...
-
データ型が一致しない?
-
エクセルで顧客の継続率
-
エクセルの数式で教えてください。
-
エクセルでのデータ作成(数値...
-
アクセスでのデータ抽出方法
-
Excel 指定した固有番号で、複...
-
お客さんの来店間隔が知りたい...
-
ソフトウェア開発会社とはどん...
-
エクセルで前年比データを作成...
-
ブラウザを使ったFTPサーバへの...
おすすめ情報
こんばんは。ご回答ありがとうございます。
myStr = Application.InputBox("削除する文字列を入力")でインプットボックスを表示させるのではなく、
テキストボックスTextShoyu1の値を参照してCommandButton1クリックでイベントを行いたいです。
よろしくお願いいたします。
こんばんは。
myStr = Application.InputBox("削除する文字列を入力")を
myStr = Me.TextShoyu1.Value
としたら全然別のところで該当するデータはありませんというMsgBoxが出たのでお聞きしました。
UserForm1上のTextNumber_Changeとそれに付随するSpinButton1_SpinDown()、SpinUpと
ComboKokyakumei_Changeでデータベースを呼び出してたんですが、
どれも「該当するデータがありません」というMsgBoxが表示されます。
myStr = Me.TextShoyu1.Value
Me.TextShoyu1.ValueはTextNumberによっては数値が入っていたり空欄だったりします。
詳しくはNo.4の方の補足に書きましたが
UserForm上にデータを呼び出せなくなりました。
CommandButton1_Clickする以前の処理が出来なくなりました。
何度かファイルを閉じてやり直してみました。
すると、先程のMsgBoxは表示されなくなり、UserForm上に今まで通りにデータも呼び出せましたが、
例えばTextShoyu1に30という値が入ってる時にCommandButton1をクリックしてみましたが、
”顧客名”のA列に30が入っている行は削除されず、MsgBoxに該当データなしが表示されました。
その2行を削除しました。
MsgBoxは当然表示されなくなりましたが、
行削除は出来ませんでした。
A列に入るTextNumberもTextShoyu1もIMEModeは2-fmIMEModeOffにして半角入力にしています。
"顧客名"シートを確認しても半角数字のみで全角数字も文字列もありませんでした。
上記のmyStr = StrConv(Me.TextShoyu1, vbNarrow)でも結果は変わらずでした。
お手間をおかけして申し訳ありません。
こんにちは。
=MATCH(検索数値,顧客名!A:A,0)で試してみました。
ちゃんと行番号が返ってきました。
Private Sub NyuryokuButton1_Click()以下にNo.2で教えていただいたコードを書き、
myStr = Me.TextShoyu1.Valueを
myStr = StrConv(Me.TextShoyu1, vbNarrow)に変更。
Else
MsgBox "該当データなし"を削除し、
End If
End With以下に下記のように書いています。
Worksheets("買増確認一覧表").Rows(Me.TextShoyu1.Value * 2 + 2).Hidden = True
Worksheets("データベース").Rows(Me.TextShoyu1.Value).Hidden = True
End Sub
またもやお世話になり、ありがとうございます。
ちょっと諦め気味に当初のコードに戻していたところでした。
A列には同じ数値は1つしか入らないので
添付画像のとおり、いただいたコードでサクサク行きました。
ちなみにですが、当初のコードに
MsgBox ("実行時間(秒)=" & Second(etime - stime))を表示させるにはどこの部分に挿入すれば計測出来ますか?
ちなみに体感的には10秒以上はかかっています。
厚かましいお願いですが、ご教授いただけたら幸いです。
おはようございます。
時間計測の手順とても参考になりました。
ありがとうございます。
ちなみに昨日と同じデータで計測してみたら最初のコードは12秒でした。