Board logo

標題: [發問] 複製前一個月公式至當月並將前一個月公式貼上為值 [打印本頁]

作者: johnny05181983    時間: 2019-11-2 16:44     標題: 複製前一個月公式至當月並將前一個月公式貼上為值

本帖最後由 johnny05181983 於 2019-11-2 16:46 編輯
C欄當月數據均由公式統計,跨月時會以人工方式將上月公式複製到下一列當月以利持續統計當月數據,再以人 ...
msmplay 發表於 2017-4-30 13:00

下面是我參考以前有發文過的資料自己試著改寫,但真的很菜,寫完都沒有反應
請問大家可否指導一下那邊有問題!!
Sub 本月貼上月公式()
Dim xArea As Range, xColumn As Range, M1%, M2%
Set xArea = [B2:M8] '設定範圍
M1 = Month(Date) '取月份
For Each xColumn In xArea.Columns
    M2 = Val(xColumn.Cells(1, 0))
    If M1 - M2 = 1 Then
        If xColumn(2).HasFormula Then Exit Sub
        If xColumn.HasFormula Then
            xColumn.Copy xColumn(2)
        Else
            MsgBox xColumn.Cells(1, 0) & "無公式或公式不齊全!! ": Exit Sub  '同一列儲存格都有公式才會複製
        End If
    End If
    If M2 < M1 Then xColumn = xColumn.Value
   
Next
End Sub
作者: 准提部林    時間: 2019-11-3 10:14

本帖最後由 准提部林 於 2019-11-3 10:28 編輯

1) 2月份, 哪有"上上個月" ????
2) 若有一個月漏了複製公式, 下下個月不就無法複製公式???
3) 12月, 要等隔年1月處理???

不如保留1月份公式, 當月複製1月份公式, 並將前一個月至2月份貼成值~~
Sub 複製公式()
Dim xArea As Range, M%
Set xArea = [B2:M8]
M = Month(Date)
If M = 1 Then Exit Sub
xArea.Columns(1).Copy xArea.Columns(M)
If M <= 2 Then Exit Sub
With xArea.Columns(2).Resize(, M - 2): .Value = .Value: End With
End Sub


=====================================
作者: johnny05181983    時間: 2019-11-4 09:29

回復 2# 准提部林
不好意思,可以再請教一下
「Dim xArea As Range, M%」
M%是什麼樣的用法,小弟我有點不太清楚??
或是有什麼指引參考資料




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