2017-11-07 14 views
0

テーブルを添付しました。私は列AとD から日付(Inbox)を取得し、隣接するセルの値(列BとE)をコピーしたいと思います。次に、別のセルに貼り付けます。Excel VBAで指定された日付に基づいてセルの値をコピーする方法

たとえば、私が日付15.10.2016と25.10.2017を入力した場合。出力は図のようにする必要があります。日付が列に存在しない場合、Msgboxは無効な日付として表示されます。この迅速な方法は、あなたのために働くだろう

enter image description here

+0

コードを投稿してください。これらの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) –

+0

必要な要素のアイデアがあるようです。あなたが試したことを共有してみませんか?何も書いていない場合は、何かを書いて共有してください。どちらの場合も、あなたが遭遇した問題を述べてください。 – QHarr

答えて

0

私を助けて。

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)を使用しています。私はあなたがそうしたいと思った。必要に応じて変更することができます。

+0

日付を取得するために入力ボックスが必要です。 – Deepak

+0

あなたのニーズに合わせて答えを編集しました。 :) @Deepak –

関連する問題