- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
12#
發表於 2013-6-6 09:57
| 只看該作者
回復 10# saleen
其實 GBKEE 版大他已經給妳了正確的答案,唯一不同的處理
他是從資料錄最後往上遞增,但是妳要求資料須皆由 A2 行遞增
(插行), 所以我稍稍就地取材改了寫入點:- Sub updateFollow()
- Dim Rng As Range
-
- On Error Resume Next
- If (TimeValue(Now) < TimeValue("08:45:00") Or TimeValue(Now) > TimeValue("13:45:00")) Then Exit Sub
- With 工作表1
- .Range("A2:L2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ' 插入資料,原本資料列均下移一行。
- ' Set Rng = .[A2]
- ' Rng = Sheet1.[c2]
- ' Rng.Offset(, 1) = "=XQTISC|Quote!'FITX06.TF-Time'"
- ' Rng.Offset(, 2) = "=R2-Q2"
- ' Rng.Offset(, 3) = "=X2-W2"
- ' Rng.Offset(, 4) = "=T2-U2"
- ' Rng.Offset(, 5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- ' Rng.Offset(, 6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- ' Rng.Offset(, 7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- ' Rng.Offset(, 8) = "=Y2"
- ' Rng.Offset(, 9) = "=Z2"
- ' Rng.Offset(, 10) = "=Z2-Q5"
- ' Rng.Offset(, 11) = "= AA2 - AB2"
- ' Rng.Offset(, 12) = "=AD2"
- ' 上面之敘述表達與下列的敘述結果是一樣的,差異只在於使用語法之巧妙不同。
- Set Rng = .[A2].Resize(1, 12)
- Rng(1) = "=XQTISC|Quote!'FITX06.TF-Time'"
- Rng(2) = "=R2-Q2"
- Rng(3) = "=X2-W2"
- Rng(4) = "=T2-U2"
- Rng(5) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- Rng(6) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- Rng(7) = "=IF(ISNUMBER(R[1]C[-3]),RC[-3]-R[1]C[-3],0)"
- Rng(8) = "=Y2"
- Rng(9) = "=Z2"
- Rng(10) = "=Z2-Q5"
- Rng(11) = "= AA2 - AB2"
- Rng(12) = "=AD2"
- Rng.Value = Rng.Value ' 將公式以欄值取代
- Rng(1).NumberFormat = "hh:mm:ss"
- End With
- If timerEnabled Then Call timerStart
- End Sub
複製代碼 但是 請自行取消 {A1:L1] 間的下拉篩選,否則將無法 "插入" 資料列。 |
|