2011-12-14 109 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,我建议你多注意调试程序要求之前帮助