- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
8#
發表於 2013-10-28 07:26
| 只看該作者
本帖最後由 c_c_lai 於 2013-10-28 07:32 編輯
回復 7# 藍天麗池
不執行的原因出自在 [F1] 為空白,而且 i 之初使設定值為 1,所以 Do While 一開始便未能執行:(修改成 i = 2)- Dim i As Integer, t As Integer
- i = 1
- With ActiveSheet '指定工作表: ActiveSheet->作用中的工作表
- Do While .Cells(i, "F") <> ""
複製代碼 同時,你的資料錄共計有 58559 列,i 型態宣告為 整數,所以會產生值的溢位訊息。
所以原本的 i As Integer 改成 i As Long (長整數),另外 Loop Until Cells(i - 1, "F") <> Cells(i, "F")-
- Do
- t = t + Cells(i, "e")
- i = i + 1
- Loop Until Cells(i - 1, "F") <> Cells(i, "F")
複製代碼 在執行到最後時會產生 1004 的錯誤訊息,所以稍稍修改成如下:- Sub Ex()
- Dim i As Long, t As Integer
-
- i = 2
- With Sheets(1) ' 指定工作表: ActiveSheet->作用中的工作表
- Do
- t = 0
- Do
- t = t + .Cells(i, "e")
- i = i + 1
- Loop Until .Cells(i - 1, "F") <> .Cells(i, "F") Or .Cells(i, "F") = ""
- .Cells(i - 1, "g") = t
- Loop Until i > 2 And .Cells(i, "F") = ""
- End With
- End Sub
複製代碼 這也是 GBKEE 版大要你附上檔案的緣故,因為無檔案提供實作測試,
一般只能天馬行空,(想像中) 做概略的分析解說了! |
|