【问题标题】:How to copy cell value based on the given Date in Excel VBA如何根据Excel VBA中的给定日期复制单元格值
【发布时间】:2018-04-19 17:24:52
【问题描述】:

我附上了我的桌子。我想从 A 列和 D 列获取日期(在输入框中) 并复制相邻的单元格值(B 列和 E 列)。然后粘贴到不同的单元格中。

例如。如果我输入日期 15.10.2016 和 25.10.2017。然后输出必须如图所示。如果列中不存在日期,则 Msgbox 为无效日期。帮帮我

【问题讨论】:

标签: vba excel excel-2010


【解决方案1】:

这种快速方法对你有用。

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