下記コードを実行するとオブジェクト変数または With ブロック変数が設定されていませんとエラーになります。
findで変数を使うにはどのような変更が必要なのか教えてください。
Dim Sht2 As Worksheet
Dim Sht3 As Worksheet
Dim rng As Range
Dim Buf As String
Set Sht2 = Sheets(1)
Set Sht3 = Sheets(2)
Buf = Month(Sht3.Cells(2, 1)) & "月"
Set rng = Sht2.Range("A:A").Find(what:=Buf, lookat:=xlWhole).Offset(0, 16)
No.5
- 回答日時:
No2です。
>Cells(2,1)には、「2023/5/1」が入っています。
>Buf = Month(Sht3.Cells(2, 1)) & "月"
>では「5月」にはならないのでしょうか。教えてください。
A2セルにどのようにして値が設定されるのかにもよりますが、正しい日付形式であれば月を取得できます。
(ご質問文からは読み取れませんけれど)人間が入力したりする値であれば、日付に似た形であってもエクセルが日付と認識できないものはエラーになりますという意味です。
例えば、
「2023年5月1」とか「2023.05.01」、「20230501」などなど。
日付とは関係のない値が入力されている場合にも当然ながらエラーが発生します。
ご質問文からは不確定な部分がどこまでかがわかりませんけれど、入力ミスなども含めて、可能性のある部分に関しては、値を使用する前にチェックが必要であろうと思います。
質問者様だけが利用するマクロなら、省略したところで問題はありませんけれど、他の人が利用して、たとえ入力ミスであったとしても、エラーが発生すれば「使いものにならないマクロ」という評価になることでしょう。
No.4
- 回答日時:
>Cells(2,1)には、「2023/5/1」が入っています。
>Buf = Month(Sht3.Cells(2, 1)) & "月"
>では「5月」にはならないのでしょうか。教えてください。
A列に設定されている5月が全角になっていませんか。
(5が全角だと検索でエラーになります)
たすかりました。A列の5月は全角でした。半角にしてみたところ解決しました。下記を全角にする方法もあるのでしょうか...
Buf = Month(Sht3.Cells(2, 1)) & "月"
今回A列を半角にしても別の人に来月全角にされてします恐れがありますので教えていただけるとたすかります。
No.3
- 回答日時:
Set rngで右辺の結果がNothingの場合にはそのエラーとなります。
そこをチェックする必要が有ります。
If Not 右辺 Is Nothing Then
Set rng=右辺
End If
No.2
- 回答日時:
こんにちは
どこでエラーが発生しているのか記載がありませんけれど・・
>Set rng = ~~~~
の行で発生しているのなら、Findの結果、該当する値が見つからない場合のエラーではないでしょうか?
センテンスを
Set rng = Sht2.Range("A:A").Find(what:=Buf, lookat:=xlWhole)
までにして、一旦終えておけば、エラーは発生しないでしょう。
例えば、その前の行でも、セル値に文字が入っていたりすればエラーになります。
どういう環境を想定できるのかがわかりませんけれど、セルの状態等が予定通りかをチェックしておくことが必要なのではないでしょうか。
No.1
- 回答日時:
Set rng = Sht2.Range("A:A").Find(what:=Buf, lookat:=xlWhole).Offset(0, 16) を
Set rng = Sht2.Range("A:A").Find(what:=Buf, lookat:=xlWhole)
にしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Excel(エクセル) マクロで特定日より1日前の日を求めたい 6 2022/05/08 09:23
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
Excel VBAマクロで実行時エラー'91'が出てしまいます。
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
-
4
VBA 見つからなかった時の処理
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
7
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
8
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
9
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
10
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
11
VBA エクセル で FIND でのエラーについて,教えてください。
Excel(エクセル)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
14
最も近い数値のあるセルを探す
Excel(エクセル)
-
15
[初心者です]VBAで指定列からAを検索し、発見したら隣のセルに値0を入れるマクロ。
Access(アクセス)
-
16
ループ処理の際、最後だけ,"をつけたくない"
Java
-
17
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
18
matchプロパティを取得できません…と出ます。
PowerPoint(パワーポイント)
-
19
【EXCEL VBA】Range(A:A").Find(What:="キーワード")の1行目について"
Visual Basic(VBA)
-
20
VBAで文字列を数値に変換したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
VBAで既に開いている別アプリケ...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
VBAからPDFファイルにパスワー...
-
AccessVBAで「dim dbs as datab...
-
Excelでフィルタをかけると警告...
-
VBAで Set wb = Sheets(1).Cop...
-
VBScriptでファイルの日時順(降...
-
オブジェクト変数の取得について
-
Excel VBAでWordの複数ファイル...
-
エクセルVBAで配列内に空白デー...
-
エクセルVBAでcode128のバー...
-
UserForm1.Showでエラーになり...
-
VBA msoShapeBlockArcで扇形の...
-
エクセルVBAでFor each文
-
textBox isNot Nothing とは
-
VBで引数にDictionaryオブジェ...
-
VBからテキストファイル(タブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
Excelでフィルタをかけると警告...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
VBAからPDFファイルにパスワー...
-
PowerPointVBAでスライドマスタ...
-
EXCEL VBA オートシェイプナン...
-
オブジェクトが見つかりません
-
テキストボックス中の文字列の...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ExcelVBAでのNZ関数について
-
上下の位置揃えについて
-
UserForm1.Showでエラーになり...
-
AccessVBAで「dim dbs as datab...
-
findメソッドの変数について
-
VBScriptでファイルの日時順(降...
-
Excel VBAでWordの複数ファイル...
おすすめ情報
ありがとうございます。Set rng = Sht2.Range("A:A").Find(what:=Buf, lookat:=xlWhole)
で同エラーは出ませんでした。
If rng1 Is Nothing Then
MsgBox "みつかりませんでした。"
End If
をつけているので見つかりませんでした。となります。
Buf = Month(Sht3.Cells(2, 1)) & "月"
のCells(2,1)には、「2023/5/1」が入っています。
変数を使わず
Set rng = Sht2.Range("A:A").Find("5月", lookat:=xlWhole).Offset(0, 16)
とするとrngはオフセットの値が代入できるのですが....
Buf = Month(Sht3.Cells(2, 1)) & "月"
では「5月」にはならないのでしょうか。教えてください。