本帖最後由 yen956 於 2014-3-16 10:15 編輯
為什麼 公式(函數) 不能自動計算?
如圖,

我用 VBA 在 AH1, AI1, ..., 輸入函數,
=SUM($AH$3:$AH$200)
為何不能不能自動計算總和?
個別 雙點, 再按 Enter 才會個別更新?
或者 按 存檔鈕, 則全部 更新?
是不是中毒? 用AVG也查不出來.
vba code 如下:- Sub 建立日期比對表()
- Dim i As Integer
- Sheets("Sheet1").Activate
-
- '根據 [B3], 填入連續12個月的 結算日期 到 欄Z
- '並填入連續12個月的 年月 到 欄Y, 供 [Y2] Match 年月 用
- '因為某些月份超過1筆, 且同月份須寫在同一列, 故用 MATCH 比對是否同一月份的資料
- For i = 1 To 12
- Cells(i + 2, 26) = DateSerial(Year([B3]), Month([B3]) + i, 1) - 1
- Cells(i + 2, 25) = Year(Cells(i + 2, 26)) - 1911 & Month(Cells(i + 2, 26))
- Next i
- End Sub
- Sub Exyen()
- Dim Rng, chkRng As Range
- Dim i, endRow, blankRow, oldRow As Integer
-
- 建立日期比對表
-
- Sheets("Sheet1").Activate
- [M3] = 0.0254 '此列 "借用" M$3是個變數並非固定值
- endRow = [A2000].End(xlUp).Row
- blankRow = 3
- oldRow = 3
-
- '先決條件:欄A 之 編號 = 1,2,3... 排列, 否則本 VBA 無法正常運轉
- For i = 3 To endRow
-
- '若 Cells(2, i + 31)<>"", 則這筆資料己結算過, 換下一筆
- If Cells(2, i + 31) <> "" Then GoTo next1:
-
- '否則將 編號 寫入 Cells(2, i + 31)
- Cells(2, i + 31) = i - 2
-
- '將 目前這一筆 欄B 之 年月放入 [Y1], 供 [Y2] Match 比對年月 用
- [Y1] = Year(Cells(i, 2)) - 1911 & Month(Cells(i, 2))
-
- '因為某些月份超過1筆, 且同月份須寫在同一列, 故用 MATCH 比對是否同一月份的資料
- [Y2] = "=MATCH(Y1,Y3:Y200,0)"
-
- blankRow = [Y2] + 2
-
- '
- If blankRow <> oldRow Then
- Range(Cells(oldRow, 34), Cells(oldRow, i + 30)).Copy
- Cells(blankRow, 34).PasteSpecial xlPasteValues
- End If
-
- Cells(blankRow, i + 31) = "=ROUND($F$" & i & "*$M$3,2)"
- Cells(1, i + 31) = "=SUM(R3C" & i + 31 & ":R200C" & i + 31 & ")"
- oldRow = blankRow
- next1:
- Next
- End Sub
複製代碼 |