Page 705 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼.SpecialCellsにて「該当するセルがありま... いぬだわん 02/10/18(金) 17:04 ┗Re:.SpecialCellsにて「該当するセルがありま... ぴかる 02/10/18(金) 18:05 ┗Re:.SpecialCellsにて「該当するセルがありま... ひで 02/10/18(金) 19:04 ┗Re:.SpecialCellsにて「該当するセルがありま... ぴかる 02/10/18(金) 19:48 ┣Re:.SpecialCellsにて「該当するセルがありま... いぬだわん 02/10/19(土) 0:11 ┗Re:.SpecialCellsにて「該当するセルがありま... おっちゃん 03/2/6(木) 13:38 ┗Re:.SpecialCellsにて「該当するセルがありま... Jaka 03/2/6(木) 13:50 ┗Re:.SpecialCellsにて「該当するセルがありま... おっさん 03/2/7(金) 14:33 ┗Re:.SpecialCellsにて「該当するセルがありま... りん 03/2/8(土) 16:01 ─────────────────────────────────────── ■題名 : .SpecialCellsにて「該当するセルがありま... ■名前 : いぬだわん ■日付 : 02/10/18(金) 17:04 -------------------------------------------------------------------------
こんにちは。 質問です。 A1から適当な数値データがあり、 列に対するデータ数および、列数は不明のWorksheetがあるとします。 そのWorksheetは所々、「空白セル」があり、 その空白セルに「Over」と入れようと思います。 下記のProgを作成してやってみたところ、 空白セルには「Over」と入れられたのですが、 「該当するセルがありません」 のエラー表示が出てしまいます。 これを回避するにはどのようにしたらよいでしょうか? 教えていただければと思います。 'ここから Sub test_Blank_Over() Dim i As Integer Dim intX As Integer 'Rowの数 Dim intY As Integer 'Columnの数 'データの形態調査 Range("A1").CurrentRegion.Select intX = Selection.Rows.Count intY = Selection.Columns.Count '空白を「Over」とする For i = 0 To intY With Range(Cells(1, 1), Cells(intX, 1)).Offset(, i) .SpecialCells(xlCellTypeBlanks) = "Over" End With Next i End Sub 'ここまで |
いぬだわんさん、こんにちは。 原因は分かりません。ただ、こんな感じにすれば出来ました。お試し下さい。 Sub test_Blank_Over() Dim MyR As Range 'データの形態調査 Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select '空白を「Over」とする For Each MyR In Selection MyR = "Over" Next End Sub |
▼ぴかる さん いぬだわんさん こんばんは またまた勉強させてもらってます(^^; いろいろ試してみたんですが、私の場合は空白セルがなく "Over"が入力できないとエラーが出ました。 これでも動くみたいですがどぅかな〜? Sub test1() On Error Resume Next ActiveSheet.Cells.SpecialCells(xlCellTypeBlanks) = "Over" On Error GoTo 0 End Sub |
いぬだわんさん、ひでさん、こんばんは ひでさんのを参考にしたNewバージョンです。こんなんでどう?。 Sub test_Blank_Over() Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks) = "Over" End Sub |
ぴかる さん、ひでさん、こんばんは。 いつもいつもいろいろありがとうございます。 やってみたらできました。 ただ、 今作っているprogは、1列に8000くらいのデータがあるもんで、 高速化してみたいところなんですが・・・ 無理なんでしょうか? それは余談として、 まずはお礼まで。 |
ぴかるさん、いぬだわんさん、ひでさん、こんにちは > >Sub test_Blank_Over() > > Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks) = "Over" > >End Sub 参考にさせてもらいたいのですが... 該当するセルが 数値の"0"の時、"-"に置き換えるときも 使えるのでしょうか このときの構文を教えてください。 "xlCell何とか"を探すのが苦手で、最近はあきらめていました。 簡単な探し方も教えてください。 本も読まずに使ってる年寄りのために...よろしく! |
こんにちは。 編集 → 置換え をマクロ記録して見て下さい。 >"xlCell何とか"を探すのが苦手で、最近はあきらめていました。 SpecialCells メソッド で検索して見てください。 |
Jakaさん こんにちは、お世話をかけます。 回答が早いので驚いています。 見るのが遅くてすみません。 質問の趣旨が少し違っているので、再度書かせてもらいます。 「数表の中に、文字、数値がある この数値のうち 値”0”だけを ”−”(別の文字に)に置き換えたい」 と言う意味です。 >編集 → 置換え をマクロ記録して見て下さい。 上記の処理では、10 は 1- になってしまいます。 シート全体に実行したいので、簡単な方法があれば教えてください。 >SpecialCells メソッド で検索して見てください。 rangeオブジェクトの中の SpecialCells メソッド は出てきましたが オブジェクト志向型言語の記述は、おっさんにはようわかりまへん ぼちぼち勉強します。 |
おっさん さん、こんにちわ。 >「数表の中に、文字、数値がある > この数値のうち 値”0”だけを ”−”(別の文字に)に置き換えたい」 >と言う意味です。 >>編集 → 置換え をマクロ記録して見て下さい。 >上記の処理では、10 は 1- になってしまいます。 >シート全体に実行したいので、簡単な方法があれば教えてください。 記録するときに「完全に同一なセルだけを検索する」チェックをつけてみてください。 こうなります Cells.Replace What:="0", Replacement:="-", LookAt:=xlWhole, SearchOrder :=xlByRows, MatchCase:=False このLookAt引数をxlWholeにすると、0が-になり、10が10のままになります。 Application.ScreenUpdating = False を先に実行してから置換すると少し処理が早くなります。 |