根据数据输入复制和粘贴动态范围

时间:2014-02-19 21:49:22

标签: excel vba excel-vba

您好我需要一些vba编码的帮助。

我在工作簿中有工作表,所有工作表的日期都与列标题相同。

是否有办法弹出数据输入屏幕,用户输入第一列开始复制的日期,然后再询问另一个问题,以便复制最后一列的结束日期。

我希望excel从特定工作表中的数据输入屏幕中找到这两个日期,复制信息,然后将此信息粘贴到从第4行到第34行开始的相同列标题中。

(行将保持不变以进行复制和粘贴,列将根据用户输入而更改)

我可以录制一个宏进行复制和粘贴,但我不确定如何使其动态化。

希望那里有人可能有想法。

1 个答案:

答案 0 :(得分:0)

您可以创建输入框以提示用户输入日期,然后将值传递到已定义的变量中。

Dim start_date As Date
start_date = InputBox("Please enter the start date:")

用户现在输入的日期存储在名为start_date的变量中。然后,您可以使用函数Find在工作表中搜索此日期的位置。 e.g。

Dim x As Range
With ThisWorkbook.ActiveSheet.UsedRange
    Set x = .Find(start_date, LookIn:=xlValues)
End With

您可以将UsedRange替换为您希望对其进行搜索的工作表中的特定区域。现在,x是包含用户输入日期的范围(或单元格)。

只需应用相同的概念来查找结束日期,然后将这些信息集成到复制粘贴例程中。

希望这会有所帮助!