iT邦幫忙

0

VBA複製貼上的迴圈功能

vba

請問
如何將有起始日期的資料將所有日期和資料自動列出呢?
節省複製貼上的時間
<原始資料>
![https://imgur.com/cMKB2dz]
<希望的結果>
![https://imgur.com/uIVj5tw]

目前試著用VBA去做,但是貼上和日期公式的迴圈卡住了,
請大大們給予指導,
謝謝。

Sub Macro1()
'
' Macro1 Macro
'
 For i = 2 To 53
'複製數字
    Range("A" & (i)).Select
    Selection.Copy
'貼上數字
    Range("H2").Select
    ActiveSheet.Paste
'複製日期
    Range("B" & (i)).Select
    Selection.Copy
  '貼上數字
     Range("I2").Select
    ActiveSheet.Paste
 '日期=前一格+1
    Range("I3").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
   '日期公式
    Range("I4").Select
    ActiveCell.FormulaR1C1 = "=IF(R2C2+ROW(R[-3]C[-7])>=R2C3-1,"""",R[-1]C[-2]+1)"
    '自動填滿公式
    Range("I4").Select
    Selection.AutoFill Destination:=Range("I4:I10"), Type:=xlFillDefault
    Range("I4:I10").Select
        Next
    
End Sub
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
paicheng0111
iT邦大師 5 級 ‧ 2020-04-05 18:02:59
最佳解答
Sub Macro1()
    Dim i As Long, startDate As Date, endDate As Date, d As Date
    Dim j As Long
    
    j = 2
    For i = 2 To 53
        startDate = Range("B" & i).Value
        endDate = Range("C" & i).Value
        For d = StartDate To endDate
            Range("H" & j).Value = i - 1
            Range("i" & j).Value = d
            j = j + 1
        Next d
    Next i
End Sub

阿新 iT邦新手 5 級 ‧ 2020-04-05 18:07:33 檢舉

謝謝大大,幫我解決了問題^^

我要發表回答

立即登入回答