Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9908 / 13644 ツリー ←次へ | 前へ→

【24788】検索して削除 金造 05/5/10(火) 17:36 質問[未読]
【24790】Re:検索して削除 kobasan 05/5/10(火) 19:39 回答[未読]
【24810】Re:検索して削除 金造 05/5/11(水) 10:30 質問[未読]
【24813】Re:検索して削除 つん 05/5/11(水) 10:37 発言[未読]
【24825】Re:検索して削除 Jaka 05/5/11(水) 12:50 発言[未読]
【24826】Re:検索して削除 金造 05/5/11(水) 13:53 お礼[未読]
【24832】Re:検索して削除 Jaka 05/5/11(水) 14:52 回答[未読]

【24788】検索して削除
質問  金造  - 05/5/10(火) 17:36 -

引用なし
パスワード
   こんにちわ。
エクセルファイルのC列に数字がランダム入っていて、そのC列の中で10桁以下の数字の入っている行を削除したいのですがどうすればいいでしょうか?
よろしくお願いします。m(__)m

【24790】Re:検索して削除
回答  kobasan  - 05/5/10(火) 19:39 -

引用なし
パスワード
   ▼金造 さん:今晩は。

>エクセルファイルのC列に数字がランダム入っていて、そのC列の中で10桁以下の数字の入っている行を削除

Sub test()
桁 = 10
Application.ScreenUpdating = False
For i = Range("C65536").End(xlUp).Row To 1 Step -1
  If Len(Cells(i, 3).Text) < 桁 + 1 Then Rows(i).Delete
Next
End Sub

これで試してみてください

【24810】Re:検索して削除
質問  金造  - 05/5/11(水) 10:30 -

引用なし
パスワード
   >Sub test()
>桁 = 10
>Application.ScreenUpdating = False
>For i = Range("C65536").End(xlUp).Row To 1 Step -1
>  If Len(Cells(i, 3).Text) < 桁 + 1 Then Rows(i).Delete
>Next
>End Sub
>
>これで試してみてください
おはようございます。kobasanさん回答ありがとうございます。早速試してみたのですが、何も変わりませんでした。数字が文字列になっているからでしょうか?
よろしくお願いします。

【24813】Re:検索して削除
発言  つん E-MAIL  - 05/5/11(水) 10:37 -

引用なし
パスワード
   こんにちは^^
横から失礼します。

>>Sub test()
>>桁 = 10
>>Application.ScreenUpdating = False
>>For i = Range("C65536").End(xlUp).Row To 1 Step -1
>>  If Len(Cells(i, 3).Text) < 桁 + 1 Then Rows(i).Delete
>>Next
>>End Sub
>>
>>これで試してみてください
>おはようございます。kobasanさん回答ありがとうございます。早速試してみたのですが、何も変わりませんでした。数字が文字列になっているからでしょうか?
>よろしくお願いします。

こちらで試したところ、ちゃんと10桁以下のデータが入ってる行が削除されました。
「数字が入っている」ということですが、もしかして、数字以外の文字が混在していて、数字だけ見て10桁以下・・・とか言う意味ではないですか?
それなら、

Len(Cells(i, 3).Text)

は、そのセルに入っているデータ(数字だろうが、文字だろうが)の文字数を求めているので、そのへんで不具合が出ていると思います。

見当違いのこと言うてたらすみません。

【24825】Re:検索して削除
発言  Jaka  - 05/5/11(水) 12:50 -

引用なし
パスワード
   こんにちは。

.text シート上に表示されている見たまんまの状態。

6E+20 だったら"6E+20"の5文字
####  だったら"####"の4文字

.Value にした方がいいと思うけど。
表示形式をいじってなければ....。

【24826】Re:検索して削除
お礼  金造  - 05/5/11(水) 13:53 -

引用なし
パスワード
   つんさん、Jakaさん、kobasanさんありがとうございました。
削除は出来ませんでしたが、私の方でも頑張って勉強してみます。
皆様には色々なアドバイスをいただき感謝いたします。

【24832】Re:検索して削除
回答  Jaka  - 05/5/11(水) 14:52 -

引用なし
パスワード
   こんにちは。

例えば
IV列に
=AND(ISNUMBER(C2),LEN(C2)<=10)
こんな関数を書いて、IV列をオートフィルタでTueを抽出して削除してやれば...。

9908 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free