返回

excel-为什么使用“Debug.Print”会导致“溢出”错误?

发布时间:2022-04-08 22:42:35 318
# visual-studio-code# phpstorm

我创建了一个函数,将一个范围内的所有单元格相加,如下所示

Function SumTest(rg As Range) As Double
  Debug.Print "SumTest..." 

  Dim s As Double
  s = 0 ' ------> Show runtime error "Overflow" at this line
  Dim i As Range
  For Each i In rg.Cells
      s = s + i.Value2
  Next i

  SumTest = s
End Function

当我在即时窗口中运行该函数时,它会抱怨运行时错误“溢出”,并且在注释“Debug.Print”行后错误消息消失,这非常奇怪。功能正常吗Dbbug.Print与双变量初始化有关吗?为什么这里会发生溢出(我只是把零赋值给一个变量Double数据类型)?


新增更多信息:

我在即时窗口测试函数,如下所示:?Sumtest(Range("A1:C1"))(射程A1:C1充满了琐碎的测试数据1 2 3).Excel的版本是Mac上的Office365。


为了简化测试,我使用了另一个更短的程序,如下所示:

Function SumTest2() As Double

  Dim s As Double

  Debug.Print "SumTest2"
  s = 0  ' ---> Still "Overflow" here
  SumTest2 = s
End Function

在测试了一些程序后,我认为这可能是Mac上Excel 2016的一个缺陷。似乎一旦你使用Debug.print则不能将值(0或其他值)赋给具有Double数据类型(可以是整数、字符串或其他数据类型)再。以下是另一个典型的测试程序:

Sub DoubleTest2()
  Dim a As Double

  a = 0
  Debug.Print a  ' when this line appears, next assignment to variable `b` will complain `overflow` error message.

  Dim b As Double
  b = 100# ' *overflow error message*
  Debug.Print b
End Sub
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像