2014-11-25 110 views
0

嗨和美好的一天大家,如何根據每月的天數複製粘貼數據?

基本上我希望根據每月的天數提取數據。請看以下鏈接爲了更好地說明:

https://drive.google.com/open?id=0B15JqLrOZtewamlRQ1ZMTmJZNWc&authuser=0

例如,D1顯示當前月份是九月。因此我只需要從第1-30天提取數據。此外,我需要複製該ID並將其粘貼到日期的左欄30次。

有什麼想法?

謝謝你的時間!

乾杯, 補丁

+0

當然D1將被格式化爲* MMMM *真正的日期(如2014年9月1日)...?如果是這種情況,那麼'Day(DateSerial(Year(Range(「D1」)。Value),Month(Range(「D1」)。Value)+1,0))''會給你要拷貝的單元的數量。 – Jeeped 2014-11-25 09:38:42

+0

嗨Jeeped,D1的價值將純屬月,如9月或8月。 – patchlam 2014-11-26 02:40:48

+0

如果您在D1中輸入* SEPTEMBER *或* AUGUST *,那麼我會謙虛地暗示這是做錯的方法。我真的無法從你的回覆中看出你的意思。 – Jeeped 2014-11-26 02:47:03

回答

0

我會得到你開始需要確定一個月內的天數宏代碼,當一個月拼寫爲文本。

Dim dys As Long 
With ActiveSheet 
    dys = Day(Application.EoMonth(DateValue(.Cells(1, 4).Value & " 1, " & Year(Date)), 0)) 
    .Cells(2, 7).CurrentRegion.ClearContents 
    .Cells(2, 7) = "ID" 
    .Cells(2, 8).Resize(1, 4) = .Cells(2, 1).Resize(1, 4).Value 
    .Cells(3, 7).Resize(dys, 1) = .Cells(1, 2).Value 
    .Cells(3, 8).Resize(dys, 4) = .Cells(5, 1).Resize(dys, 4).Value 
    Debug.Print dys 
End With 

在確定月份的最後一天後,使用它來調整單元格的源/目標區域的大小是一件小事。我試圖確定最好的猜測爲您的樣本的單元格地址,但合併區域可能會弄髒事情。

Transfer number of rows by month

+0

謝謝Jeeped,這是完美的工作!只有一個擔心,這個宏是否足夠強大,以確定是否有2月28或29天? – patchlam 2014-11-27 05:19:16

+0

@patchlam - 如果您查看確定任何月份的天數的代碼,您將看到它將當前年份附加到拼寫出的月份名稱中,以便獲取最後一個月的日期。你必須在一個不同的年份(不同的2月28日/ 2月29日),以便它弄糟。 – Jeeped 2014-11-27 05:47:47

+0

Jeeped,非常感謝您的幫助! – patchlam 2014-11-27 06:04:10