复制并粘贴VBA宏

时间:2016-02-24 04:39:17

标签: excel vba excel-vba

我真的刚刚开始学习VBA并且多次使用过该网站。

我有一个真正的头脑,并希望得到一些帮助和指导 - 希望它能帮助我更好地理解它。

我本质上拥有的是列中的一长串员工姓名,我需要为每个具有01/01 / 2016-31 / 12/2016 2016年日期的人创建一行。

我在一栏3666行(10 x 01/01 / 2016-31 / 12/2016)的A栏中,我想知道我是否可以写VBA来复制第一个员工姓名的值,并将其粘贴下来B列中366行,然后向下一行,复制下一个员工名称,然后粘贴下一行366行,并重复直到所有10个员工姓名都已完成。

为每个员工姓名和一年中的每个日期留下一排。

希望这是有道理的。

任何帮助都很棒

1 个答案:

答案 0 :(得分:0)

您可以使用此代码:

Sub test()
Dim i&, cl As Range, SDate As Date, FDate As Date, k As Variant
Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
Dic.CompareMode = vbTextCompare
i = [A:A].Find("*", , , , , xlPrevious).Row
For Each cl In Range("A2:A" & i)
    If Not Dic.exists(cl.Value2) Then Dic.Add cl.Value2, ""
Next cl
Workbooks.Add: [A1] = "Name": [B1] = "Date"
FDate = "01/01/2017": i = 2
For Each k In Dic
    SDate = "01/01/2016"
    While SDate < FDate
        Cells(i, "A").Value2 = k
        Cells(i, "B").Value2 = SDate
        Cells(i, "B").NumberFormat = "DD/MM/YYYY"
        SDate = SDate + 1: i = i + 1
    Wend
Next k
End Sub

源:

enter image description here

输出:

enter image description here