トップページ > プログラム > 2017年03月09日 > i/mBbb1z

書き込み順位&時間帯一覧

14 位/246 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000011204



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part46 [無断転載禁止]©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part46 [無断転載禁止]©2ch.net
785 :デフォルトの名無しさん[]:2017/03/09(木) 20:47:09.64 ID:i/mBbb1z
Find(シート1のA列から文字列を検索
If (シート1で出てきたセルの2つ右をセレクトし、Activeセルの値を取得
Find (取得した値を、シート2のA列で検索
IF (値が一致したら、セルの値を置換

このような入れ子にしたいのですが
二つ目のFindで Set a =...Find の文を入れた時点でエラーが出ます
「オブジェクト変数または With ブロック変数が設定されていません。」と出ますが
Set a の変数aは宣言しているし、変数名も間違っていないし 上で動いた構文と全く同じように書いたので構文は間違っていないはず・・・

エラーとして出るのは
If FoundCell.Address = FirstCell.Address Then の文で
二つ目のFindの文を入れなければ普通に動きます

Findの入れ子ってもしかして出来ない??Setが悪さをしてる???IFの入れ子がおかしい??
仕事で必要になり必死に調べてプログラムしたのですが
つい先日勉強し始めたばかりの初心者で、どうしてもわかりません

家からメールにログインできず、元のデータ持ってこれませんでした・・・
どうか知恵を貸してください
お願いします
Excel VBA 質問スレ Part46 [無断転載禁止]©2ch.net
787 :デフォルトの名無しさん[]:2017/03/09(木) 21:18:20.68 ID:i/mBbb1z
>>786 かなり省略されてますが、入れ子になってます
ネットのプログラムを色々ひっぱったのですが、元はこのプログラムです

Dim FoundCell As Range, FirstCell As Range, Target As Range
Set FoundCell = Cells.Find(What:="田中")
If FoundCell Is Nothing Then
MsgBox "見つかりません"
Exit Sub
Else
Set FirstCell = FoundCell
Set Target = FoundCell
End If

Do
Set FoundCell = Cells.FindNext(FoundCell)
If FoundCell.Address = FirstCell.Address Then
Exit Do
Else
Set Target = Union(Target, FoundCell) ←これは元のプログラムはっつけただけなので、特に必要はないです
@ここで見つかったセルの横をセレクトし、二つ目のFind使用
(ここでは複数選択じゃないので、上と同じIFを書くつもりでしたが必要ないのかも)
End If
Loop
Target.Select
MsgBox Target.Count & "件見つかりました"
End Sub

大体こんな感じのプログラムです。
投稿したら字下げ消えるんですね、見づらいと思います。ごめんなさい。
Excel VBA 質問スレ Part46 [無断転載禁止]©2ch.net
797 :デフォルトの名無しさん[sage]:2017/03/09(木) 22:14:07.03 ID:i/mBbb1z
ありがとうございます!
完全に詰まってしまったのでアドバイス助かります

思い出しながらエラーが出たところまで編集しました(簡素にですが
これじゃわからん状態なら、明日元のデータを持ってきます
全体の構文的には間違っていないんでしょうか...
http://climbi.com/b/9622/0

二つ目のFindを別のサブプロシージャに入れてCallで呼び出しても、全く同じエラーになります
単体で動かすと普通に動きました
Excel VBA 質問スレ Part46 [無断転載禁止]©2ch.net
799 :デフォルトの名無しさん[sage]:2017/03/09(木) 22:26:46.20 ID:i/mBbb1z
>>796 このプログラムだと、毎回Nothingになるのですか?
詳しくないので逸れた意見をしていたら申し訳ないのですが

検索結果が見つからなかった場合は最初に”見つかりません”でおわり
検索して一番最後の検索値セルまで行っても、FindNextでは1番上に戻る(とネットで見ました

ですが、たしかエラーが出たとき右下のウォッチに「Nothing」とあったような・・・
確認してみます


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。