2011-12-14 79 views
-1

我不知道爲什麼我得到錯誤的標題...我有一小塊代碼:應用程序定義或定義的對象錯誤

Do While ws2.Cells(Rand, 1).Value <> "" And Rand < 65000 
    Min = ws2.Cells(Rand, 5).Value 
    Data = ws2.Cells(Rand, 1).Value 
    If Min <> 0 Then 
     Do Until Min = 0 
      If Min < MinZi Then 
       ws.Cells(lRow, 1).Value = Data 
       ws.Cells(lRow, 2).Value = Min/MinZi 
       Min = 0 
      Else 
       ws.Cells(lRow, 1).Value = Data 
       ws.Cells(lRow, 2).Value = 1 
       Data = DateAdd("d", -1, Data) **'the error is on this line** 
       Min = Min - MinZi 
      End If 
     lRow = lRow + 1 
     Loop 
    End If 
Rand = Rand + 1 
Loop 

在ws2.Cells(蘭特,1)I有一些日期...所以我想讀取ws2中的每一行,只要我有一個日期...如果有一個日期,我正在尋找列5中的分鐘數。 因此,如果數字分鐘數不等於0,那麼如果分鐘數小於一天中的分鐘數,我計算Min代表多少分鐘......否則,如果分鐘數大於我添加的一天中的分鐘數在不同工作表中的日期與數字1(這意味着它是100%滿),然後我減去一天中的分鐘數但我有0分鐘。數據被定義爲日期。 任何想法,爲什麼我得到這個錯誤?

另一個奇怪的是,在表單緩衝區(ws)中添加了與當前日期一樣多的行(2011年12月14日意味着40891行)......並且我不知道爲什麼。 任何想法?

非常感謝!

+0

@Andrei lon我們會幫助你,如果你讓我們知道如何看待這些值 – niko 2011-12-15 05:08:24

回答

0

如果Min > 0 and MinZi = 0那麼內部循環將繼續下去,直到出現某種情況。對於翻倒

可能的原因:

  • 如果lRow是一個整數,在到達值32767錯誤消息:「溢出」。
  • lRow達到Excel版本中某一行的最大值。錯誤消息:「應用程序定義或對象定義的錯誤」。
  • 數據達到-657434。錯誤消息:無效的過程調用或arguement」

我相信在ws.Cells(lRow, 1).Value = Data而不是Data = DateAdd("d", -1, Data)程序停止

我建議你調查MinZi,我建議你多注意調試程序要求之前幫助

相關問題