此ftp上传片段导致bWorker.Report进度行上某些大小文件的“算术运算导致溢出”错误
Dim LastRow As Long
With ws02
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
ws0.Range("A1:I3000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
ws02.Range("B1").LastRow, Unique:=False
End Sub
我做错了什么?
答案 0 :(得分:0)
似乎offset * ProgressBar1.Maximum
的值大于Integer.MaxValue(2147483647)。
您可以通过以不同顺序执行计算来避免溢出:
bWorker.ReportProgress(CType(offset / fileStream.Length * ProgressBar1.Maximum, Integer))
恰好CType(x,Integer)可以缩短为CInt(x),所以你可以写更短的内容:
bWorker.ReportProgress(CInt(offset / fileStream.Length * ProgressBar1.Maximum))