許せない心理テスト

あらかじめ用意した日付セル列からダイアログで設定した日付を検索し、
その日付がある列に値を転記したいです。

前提
シート1の値は別マクロで集計した値が格納されます。
シート2はあらかじめ日付のセルを用意しときます。
コード(a,b,c,)の並びは同じです。

find関数等を用いてトライしたんですがうまくいきませんでした。
やりかたも適正なのかわかっていません。

VBAの勉強中で基礎がまだまだなんですが
参考にしたいのでサンプルプログラムがあると非常に助かります。

質問があやふやで申し訳ないんですが返答お願いします。

「エクセルのVBAで日付を検索し転機したい」の質問画像

A 回答 (2件)

シート2が日付は「文字列」ではなく「日付」であるなら、


ダイアログで取得した年月日から日付のシリアル値を取得してから検索。

添付した画像(すべて同一シート内)で動作するのに限定したものですが・・・

Sub sample()
  ds = DateSerial(Range("C12"), Range("D12"), Range("E12"))
  For i = 6 To 10
    If Cells(2, i) = ds Then
      Range("B3:B9").Copy Cells(3, i)
      Exit Sub
    End If
  Next
End Sub

応用できそう?
「エクセルのVBAで日付を検索し転機したい」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます

サンプルを応用して目的を達成することができました。
感謝です。

お礼日時:2020/10/21 13:34

あなたのスキルがどの程度かわかりませんが。



シート2の日付は、
「文字列」ですか?
「日付」ですか?

質問される方の多くの人がこの事を意識していないし、
その違いを知らないことが多いので。

シート2の「2020/10/19」が「文字列」なら、
ダイアログで取得した年月日を「/」で繋げた文字列で検索できるけど。

シート2の「2020/10/19」が「日付」なら、
"表示上"は年月日だけど、実際は「44123」という数字(日付のシリアル値)なので、
ダイアログで取得した年月日を「/」で繋げた文字列での検索でヒットしません。
(「44123」は1900/1/1を「1」としての経過日数です)

まず、そこを確認して下さい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
日付でやってます。

文字列と日付に区別をつけてなったので気を付けます

お礼日時:2020/10/21 13:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A