Board logo

標題: [發問] 自動帶入日期 [打印本頁]

作者: toromru    時間: 2015-9-16 15:16     標題: 自動帶入日期

想詢問假設我有 50筆資料 放在A列  
我在B列要自動帶入日期 從次月1號到30號或31號 ~
最後31號資料填入後繼續從1號開始填~

如:   A        B
        1     10/1
        2     10/2
        3     10/3
       .....     ......
       31    10/31
       32    10/1

大致上想呈現這樣 不知道有沒有辦法用VBA寫出來?!
作者: ikboy    時間: 2015-9-16 16:36

回復 1# toromru


    Private Sub Worksheet_Change(ByVal Target As Range)
    zr = Target.Row: zc = Target.Column
    If zc = 1 And Cells(zr, 2) = "" Then
      Dim lad, sfd As Date
      sfd = Application.EoMonth(Date, -2) 'sfd means StartFromDate
      lad = Application.Max(Columns(2), sfd)  'lad means LastActionDate
      Cells(zr, 2) = lad + 1
  End If
  End Sub
作者: lpk187    時間: 2015-9-16 16:59

回復 1# toromru
  1. Option Explicit

  2. Public Sub ex()
  3. Dim I As Date
  4. Dim r%, dN%, j%
  5. r = 1
  6. dN = DateSerial(Year(Date), Month(Date) + 2, 0) - DateSerial(Year(Date), Month(Date) + 1, 1) + 1 '計算次月有幾天
  7. For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step dN '
  8.         For I = DateSerial(Year(Date), Month(Date) + 1, 1) To DateSerial(Year(Date), Month(Date) + 2, 0) '填寫日期
  9.             If Cells(r, 1) <> "" Then '遇到A欄有空白,就停止
  10.                 Cells(r, 2) = Format(I, "m/ d")
  11.                 r = r + 1
  12.             End If
  13.         Next
  14. Next
  15. End Sub
複製代碼

作者: 准提部林    時間: 2015-9-16 18:23

Sub TTDATE()
Dim D As Date, DC%
D = DateSerial(Year(Date), Month(Date) + 2, 0)  '下月底
DC = Day(D) '下月天數
For i = 1 To [A65536].End(xlUp).Row
  Cells(i, 2) = D - DC + 1 + (i - 1) Mod DC
Next i
End Sub
作者: toromru    時間: 2015-9-18 17:11

回復 4# 准提部林


    感謝您 正常使用中 : )




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)