https://oshiete.goo.ne.jp/qa/8913191.html
上記質問で便利に使わせていただきましたが、マクロを実行後に転記されたSheet1、B列の日付を日付型データで処理したいのです。
別セルにB2+1などすれば日付型になるのですが、転記されたセル自体は文字型として認識されているようで、フィルターで日付扱いされません。
転記されたセル自体を日付型にする方法はあるでしょうか?
よろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
すいませんVBAが日付として判断できないのかもしれません。
「rcDate = .Cells(i, 4).Text」を「rcDate = .Cells(i, 4).Value」または「rcDate = CDate(.Cells(i, 4).Value)」にしてもダメですか?
出来ました!!
上記「rcDate = .Cells(i, 4).Value」でも「rcDate = CDate(.Cells(i, 4).Value)」どちらでも同じ結果になり、見事に日付として認識されました。
フィルターも使えるようになりました。
ありがとうございました。
No.5
- 回答日時:
それですと「型が一致しません」エラーは出ないはずですが…
もっと基本的なことをお聞きします「https://oshiete.goo.ne.jp/qa/8913191.html」のベストアンサーのコードを使っているんですよね。もし違うようならばコードを提示してください。
No.3
- 回答日時:
念の為確認しておきます。
D5セルですが「' H27.2.2」の様に表示されていますが、数式バーは次のどれになっていますか?①「2015/2/2」
②「' H27.2.2」
③ その他(数式バーの内容をコピーして提示してください)
No.2
- 回答日時:
こんばんは。
おっしゃる通り、マクロ転記後は、「不活性化」といって、日付は日付でもなければ、完全なテキストではない状態のことがあります。日付としては認識されない状態になっています。
一般的な方法は、ものすごく簡単な方法で、
'書式設定を最初に置きます。(逆ですと、若干、値が変わることがあります)
Range(範囲).NumberFormatLocal ="yy/mm/dd" '先に書式設定する
Range(範囲).Value =Range(範囲).Value
とすると活性化します。NumberFormatLocal は、平成とか昭和とか入る場合に使いますが、オールラウンドで使えます。
ただし、空白値が入っている時は、上記の方法は使えません。
Do ~ Loop などで、Trimで、1つの値ごとに空白値を除去しなければなりません。あえて、変数に入れて、CDate などは使わなくてもよいはずです。
No.1
- 回答日時:
よく見ていませんが「rcDate = .Cells(i, 4).Text」を「rcDate = CDate(.Cells(i, 4
).Text)」にしてはダメですか?お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) 条件付き書式 別のシートで色付けされたセルデータの転記漏れを防ぐ書式を入れたい 4 2022/04/22 06:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
【VBA】写真の貼り付けコードが...
-
エクセルVBA 配列からセルに「...
-
VBA 複数条件の分岐処理の上手...
-
EXCEL VBA 文中の書式ごと複写...
-
Excelで空白セル直前のセルデー...
-
Excel UserForm の表示位置
-
VBA:日付を配列に入れ別セルに...
-
Excel VBA IF文がうまく動作し...
-
入力規則のリスト選択
-
特定の色のついたセルを削除
-
VBAでユーザーフォームにセル値...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
【エクセルVBA】写真挿入の2枚...
-
Excel VBAでCheckboxの名前を変...
-
昨日、質問した件『VBA にて、...
-
下記のマクロの説明(意味)を...
-
C# DataGridViewで複数選択した...
-
QRコード作成マクロについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報
GooUserラック 様
回答ありがとうございます。
試してみたところ「型が一致しません」でエラーになります。
WindFaller 様
回答ありがとうございます。
試してみたところ回答いただいた書式をWith ws1の先頭に記入しても、末尾に記入しても結果は変わらずフィルターで日付認識されませんでした。
なおSheet1、B列には空白がありますが、実行してもエラーは出ませんでした。
結果は書式を記入する前と同じでした。
GooUserラック 様
回答ありがとうございます。
ご指摘のセル表示は「H28.10.23」の形式です。
またセルの書式設定はユーザー定義で『[$-411]ge.m.d』としてあります。
読解力がなく申し訳ありません。
数式バーは「2016/10/23」となっています。