返回列表 上一主題 發帖

請問版上大大,這個要怎麼寫VBA

本帖最後由 c_c_lai 於 2013-10-28 07:32 編輯

回復 7# 藍天麗池
不執行的原因出自在 [F1] 為空白,而且 i 之初使設定值為 1,所以 Do While 一開始便未能執行:(修改成 i = 2)
  1.     Dim i As Integer, t As Integer
  2.     i = 1
  3.     With ActiveSheet   '指定工作表: ActiveSheet->作用中的工作表
  4.         Do While .Cells(i, "F") <> ""
複製代碼
同時,你的資料錄共計有 58559 列,i 型態宣告為 整數,所以會產生值的溢位訊息。
所以原本的  i As Integer 改成  i As Long (長整數),另外 Loop Until Cells(i - 1, "F") <> Cells(i, "F")

  1.        Do
  2.             t = t + Cells(i, "e")
  3.             i = i + 1
  4.         Loop Until Cells(i - 1, "F") <> Cells(i, "F")
複製代碼
在執行到最後時會產生 1004 的錯誤訊息,所以稍稍修改成如下:
  1. Sub Ex()
  2.     Dim i As Long, t As Integer
  3.    
  4.     i = 2
  5.     With Sheets(1)   ' 指定工作表: ActiveSheet->作用中的工作表
  6.         Do
  7.             t = 0
  8.             Do
  9.                 t = t + .Cells(i, "e")
  10.                 i = i + 1
  11.             Loop Until .Cells(i - 1, "F") <> .Cells(i, "F") Or .Cells(i, "F") = ""
  12.             .Cells(i - 1, "g") = t
  13.         Loop Until i > 2 And .Cells(i, "F") = ""
  14.     End With
  15. End Sub
複製代碼
這也是 GBKEE 版大要你附上檔案的緣故,因為無檔案提供實作測試,
一般只能天馬行空,(想像中) 做概略的分析解說了!

TOP

        靜思自在 : 【時間成就一切】時間可以造就人格,可以成就事業,也可以儲積功德。
返回列表 上一主題