テーブルを添付しました。私は列AとD から日付(Inbox)を取得し、隣接するセルの値(列BとE)をコピーしたいと思います。次に、別のセルに貼り付けます。Excel VBAで指定された日付に基づいてセルの値をコピーする方法
たとえば、私が日付15.10.2016と25.10.2017を入力した場合。出力は図のようにする必要があります。日付が列に存在しない場合、Msgboxは無効な日付として表示されます。この迅速な方法は、あなたのために働くだろう
テーブルを添付しました。私は列AとD から日付(Inbox)を取得し、隣接するセルの値(列BとE)をコピーしたいと思います。次に、別のセルに貼り付けます。Excel VBAで指定された日付に基づいてセルの値をコピーする方法
たとえば、私が日付15.10.2016と25.10.2017を入力した場合。出力は図のようにする必要があります。日付が列に存在しない場合、Msgboxは無効な日付として表示されます。この迅速な方法は、あなたのために働くだろう
私を助けて。
Sub get_money()
a_col_last_row = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
d_col_last_row = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 4).End(xlUp).Row
data_a = InputBox("Enter 1st date")
data_d = InputBox("Enter 2st date")
lookup_val_a = ThisWorkbook.Worksheets(1).Cells(3, 8)
Dim refRng_a As Range
Dim refRng_d As Range
Set refRng_a = Range("A2:B" & a_col_last_row)
'data_a = Cells(3, 8).Value
Set refRng_d = Range("D2:E" & d_col_last_row)
'data_d = Cells(3, 9).Value
On Error GoTo errhandler1:
Cells(3, 8) = WorksheetFunction.VLookup(data_a, refRng_a, 2, 0)
controlback:
On Error GoTo errhandler2:
Cells(3, 9) = WorksheetFunction.VLookup(data_d, refRng_d, 2, 0)
End
errhandler1:
MsgBox "1st Value not found"
Err.Number = 0
Resume controlback
errhandler2:
MsgBox " 2nd Value not found"
Err.Number = 0
End Sub
ただし、入力と出力に同じ範囲(H3、I3)を使用しています。私はあなたがそうしたいと思った。必要に応じて変更することができます。
日付を取得するために入力ボックスが必要です。 – Deepak
あなたのニーズに合わせて答えを編集しました。 :) @Deepak –
コードを投稿してください。これらのvidoesは役立つかもしれません:[Excel VBAの紹介パート5 - セルの選択(範囲、セル、アクティブセル、終了、オフセット)](https://www.youtube.com//watch?v=c8reU-H1PKQ&index=5&list=PLNIs- AWhQzckr8Dgmgb3akx_gFMnpxTN5)と[Excel VBAの紹介パート11.1 - 入力ボックス](https://www.youtube.com//watch?v=d07yuwGHZpo&index=11&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) –
必要な要素のアイデアがあるようです。あなたが試したことを共有してみませんか?何も書いていない場合は、何かを書いて共有してください。どちらの場合も、あなたが遭遇した問題を述べてください。 – QHarr