Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vbscript中的溢出错误_Vbscript_Excel_Vba - Fatal编程技术网

vbscript中的溢出错误

vbscript中的溢出错误,vbscript,excel,vba,Vbscript,Excel,Vba,以下脚本的第40行出现“溢出”错误: Set objDialog = CreateObject("UserAccounts.CommonDialog") objDialog.Filter = "Excel|*.xls|All Files|*.*" objDialog.FilterIndex = 1 objDialog.InitialDir = "D:\" intResult = objDialog.ShowOpen If intResult = 0 Then Wscript.Quit

以下脚本的第40行出现“溢出”错误:

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "Excel|*.xls|All Files|*.*"
objDialog.FilterIndex = 1
objDialog.InitialDir = "D:\"   
intResult = objDialog.ShowOpen 

If intResult = 0 Then
Wscript.Quit
 Else
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(objDialog.FileName) 
End If


objExcel.Visible = True
Set objWorksheet2 = objWorkbook.Worksheets("Foaie1") 
objWorksheet2.Activate 


objExcel.ScreenUpdating = False
objExcel.Calculation = xlCalculationManual


Set RngVal = objWorksheet2.Range("D1").CurrentRegion.Columns(4)
Set RngCrt = RngVal.Offset(0, -3)

objWorksheet2.Select
objWorksheet2.Range("A2").Select

Do Until IsEmpty(ActiveCell)

If ActiveCell.Value <> ActiveCell.Offset(-1, 0).Value Then
Criteria = ActiveCell.Offset(-1, 0).Value
ActiveCell.Offset(-1, 7).Value = objExcel.WorksheetFunction.SumIf(RngCrt, Criteria, RngVal) / objExcel.WorksheetFunction.CountIf(RngCrt, Criteria)
End If
ActiveCell.Offset(1, 0).Select

Loop

ActiveCell.Offset(-1, 7).Value = objExcel.WorksheetFunction.SumIf(RngCrt, Criteria, RngVal) / objExcel.WorksheetFunction.CountIf(RngCrt, Criteria)

objExcel.Calculation = xlCalculationAutomatic
objExcel.ScreenUpdating = True

在您的代码行上方

ActiveCell.Offset(-1, 7).Value = objExcel.WorksheetFunction.SumIf(RngCrt, Criteria, RngVal) / objExcel.WorksheetFunction.CountIf(RngCrt, Criteria)
是第41行,所以我假设一个额外的换行是错误地添加到该示例中的,因为我很确定这是失败的行

因此,找出失败原因的简单方法是查看正在计算的值,因此请尝试将该行更改为以下内容:

value1 = objExcel.WorksheetFunction.SumIf(RngCrt, Criteria, RngVal)
value2 = objExcel.WorksheetFunction.CountIf(RngCrt, Criteria)
msgbox value1
msgbox value2
ActiveCell.Offset(-1, 7).Value = value1 / value2

我假设MessageBox中显示的值不是您期望的值,因此希望能够向您显示错误所在。

Tim所说的加上“溢出”通常意味着您试图将值放入无法处理该值的变量中。因为你没有显示变量是如何声明的,我不知道我们能如何帮助。如果你正在运行Windows Server 2003 X64或WindowsXP X64,你可能会受到C++运行库中的错误的影响,并且可以从微软下载一个修复程序。有关更多详细信息,请参阅Microsoft KB955536-。
value1 = objExcel.WorksheetFunction.SumIf(RngCrt, Criteria, RngVal)
value2 = objExcel.WorksheetFunction.CountIf(RngCrt, Criteria)
msgbox value1
msgbox value2
ActiveCell.Offset(-1, 7).Value = value1 / value2