2016-02-24 44 views
0

我真的刚刚开始学习VBA并多次使用该站点。复制并粘贴到VBA宏中

我有一个真正的头部划痕器,会喜欢一些帮助和指导 - 希望它能帮助我更好地理解它。

我基本上拥有的是一列很长的职员名单,我需要为每一个与01/01/2016/2016/12/2016年的日期创建一行。

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

给我留下一行每个员工的姓名和每年的日期。

希望这是有道理的。

任何帮助将是真棒

回答

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

+0

瓦西里,你是上帝!像梦一样工作!谢谢! –