[[20210126224620]] 『「オブジェクト変数または With ブロック変数が設』(ううう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「オブジェクト変数または With ブロック変数が設定されていません。」と出てしまいます』(ううう)

宜しくお願い致します。
9行目でエラーが出てしまいます。
「オブジェクト変数または With ブロック変数が設定されていません。」と
記載されています。
初心者なので何を言っているのか調べても良く分かりませんでした。
宜しくお願い致します。

1 Dim FoundCell As Range
2 Dim FirstAddress As String
3 Set FoundCell = Range("H:H").Find("*SEF")
4
5 If Not FoundCell Is Nothing Then
6 FirstAddress = FoundCell.Address
7
8 Do
9 If FoundCell.Value Like "*SEF" Then
10 FoundCell.Value = Replace(FoundCell, "SEF", "LEF")
11
12 End If
13 Set FoundCell = Range("H:H").FindNext(FoundCell)
14 Loop Until FoundCell.Address = FirstAddress
15
16 End If

< 使用 Excel:Excel2019、使用 OS:Windows10 >


本題とは別ですが、そもそも置換ではだめなのですか

 Columns("H").Replace "SEF", "LEF", xlPart

(マナ) 2021/01/26(火) 22:59


https://excel-ubara.com/excelvba1/EXCELVBA399.html

(マナ) 2021/01/26(火) 23:04


 行番号をわざわざふってますが、エラーが出るのはホントにその行番号の9行目ですか?

 "SEF"を検索して、"SEF"をどんどん置換していくので、最後は見つからなくなります。
 すると、FoundCellがNothingになるので、
「オブジェクト変数または With ブロック変数が設定されていません。」
 のエラーになります。

 この場合、ループ終了条件を、最初の見つかったセルのアドレスにするのは、不適当なのです
(´・ω・`) 2021/01/26(火) 23:16

ループを抜ける条件を,こんな感じでどうですか

 Do

    If FoundCell Is Nothing Then Exit do
 Loop

(マナ) 2021/01/26(火) 23:24


マナさん、´・ω・`さん
ご回答ありがとうございます。

お二方のご指摘を参考にさせていただいて、
解決することが出来ました。
本当に助かりました、ありがとうございます!!
(ううう) 2021/01/26(火) 23:52


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.