質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

3回答

1255閲覧

日付を検索してヒットしたセルを選択したい

suukun

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/09/12 00:41

find関数をしようして検索を試みてますが
Nothingになってしまいます。

書き方が誤っているのか、そもそも日付検索で選定すべき関数が誤っているのか判断がつかない状況です。

そして検索出来た次のステップとして見つかったセルをアクティブにしたいのですが書き方がわからないです。

Sub 検索() Dim lastYear As String Dim lastDay As String Dim FoundCell As Range lastYear = Sheets("設定").Range("B24").Value lastDay = Sheets("設定").Range("B22").Value Workbooks.Open "売上状況.xlsx" Sheets(lastYear).Select Set FoundCell = Sheets(lastYear).Range("A2:A1050").Find(What:=lastDay, LookIn:=xlValues) '検索してヒットしたセルを選択する処理 End Sub

lastYearやlastDayは設定シートのそれぞれのセルにワークシート関数で表示させているので
売上状況.xlsxに一致する値を入れています。

日付検索がなかなか難しく、
ご相談いただけたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

以下でいかがでしょうか?
lastDay = Format(Sheets("設定").Range("B22").Value, "m月d日")

投稿2021/09/12 01:33

hex309

総合スコア761

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suukun

2021/09/12 01:40

ありがとうございます。 ?FoundCell 2020/09/12 で検索できました。
suukun

2021/09/12 01:42

検索してヒットしたセルをアクティブにする方法はございますでしょうか?
hex309

2021/09/12 01:44

FoundCell.Activate ではダメですか?
suukun

2021/09/12 01:48

ありがとうございます。 すみません。出来ました。 お恥ずかしい限りです。
guest

0

Excelファイルの補足をさせていただきます。
【設定シートの値】
イメージ説明
【検索対象の内容】
イメージ説明

投稿2021/09/12 01:26

編集2021/09/12 01:31
suukun

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hex309

2021/09/12 01:37

補足情報ありがとうございます。 ただ、質問の補足については、「回答」ではなく、質問に追記ができると思うので、そちらの機能をご利用されたほうがよろしいかと思います。
suukun

2021/09/12 01:41

すみません。 助言ありがとうございます。 不足点があれば質問に追記で対応させていただきます。
guest

0

日付の検索は、検索対象のセルがどの様になっているかで結構複雑です。

以下のURLに、様々ケースを想定した記述があるので、参考にしてみてください。
https://www.moug.net/tech/exvba/0050163.html

あと、「lastYearやlastDayは設定シートのそれぞれのセルにワークシート関数で表示させている」とのことですが、具体的にはどのようにされていますか?

私の環境で、以下のようにしたところ検索はできました。
・lastYearのデータ型をDate型にし変更
・lastYearのもとのセルの日付はTODAY関数で入力
・設定シート、検索対象、いずれもセルの書式は特に変更せず

投稿2021/09/12 01:05

編集2021/09/12 01:10
hex309

総合スコア761

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suukun

2021/09/12 01:25

ありがとうございます。 念の為、補足でワークシートの画像を張らせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問