2016-02-24 47 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

瓦西里,你是上帝!像夢一樣工作!謝謝! –