excel VBA溢出错误

excel VBA溢出错误,vba,excel,Vba,Excel,我的Vba代码是 Private Sub CommandButton2_Click() Dim arr() As Variant Dim i As Integer Dim arr1() As Variant Dim arr2() As Variant Dim arr3() As Variant Dim wb5 As Workbook Dim wb As Workbook Dim str As String Dim

我的Vba代码是

    Private Sub CommandButton2_Click()
    Dim arr() As Variant
    Dim i As Integer
    Dim arr1() As Variant
    Dim arr2() As Variant
    Dim arr3() As Variant

    Dim wb5 As Workbook
    Dim wb As Workbook
    Dim str As String
    Dim q As Integer
    Dim c As Variant

    Dim u As Date
    Set wb = Workbooks("Contractor Manpower Tracking_SE 03.06.2015.xlsx")
    arr1 = wb.Sheets("SE_Scheme").Range("J4:J36").Value
    arr = wb.Sheets("SE_Scheme").Range("I4:I36").Value
    arr2 = wb.Sheets("SE_Scheme").Range("E4:E36").Value
    arr3 = wb.Sheets("SE_Scheme").Range("F4:F36").Value
    u = wb.Sheets("SE_Scheme").Range("$Q$2").Value
    Workbooks("Scheme1.xlsm").Activate
    For Row = 1 To UBound(arr, 1)
        For Col = 1 To UBound(arr, 2)
        If (IsNumeric(arr1(Row, Col)) And Not (IsNull(arr1(Row, Col)) And IsNull(arr(Row, Col)))) Then
        Sheets("Sheet1").Cells(Row + 87, 4) = (arr1(Row, Col) / arr(Row, Col) * 100)
        End If
    Next Col
 Next Row
 End Sub

我在arr和arr1数组中有两个空值,因此发生了此错误,程序正在终止。请帮助最短的方法是添加
If
语句检查0:

If (arr(Row, Col)<>0) Then Sheets("Sheet1").Cells(Row + 87, 4) = (arr1(Row, Col) / arr(Row, Col) * 100)
End If
If(arr(Row,Col)0)则为纸张(“Sheet1”)。单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100)
如果结束

希望这能有所帮助。

最短的方法是添加
If
语句检查0:

If (arr(Row, Col)<>0) Then Sheets("Sheet1").Cells(Row + 87, 4) = (arr1(Row, Col) / arr(Row, Col) * 100)
End If
If(arr(Row,Col)0)则为纸张(“Sheet1”)。单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100)
如果结束

希望这能有所帮助。

黑暗中的一枪。。。试试这个。。用
如果arr(Row,Col)0那么Sheet1。单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100)替换
,单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100。。。试试这个。。用
如果arr(Row,Col)0那么Sheet1。单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100)替换
,单元格(Row+87,4)=(arr1(Row,Col)/arr(Row,Col)*100。。。试试这个。。将
表格(“Sheet1”)。单元格(第87行,第4行)=(第1行,第1列)/arr(第1行,第1列)*100)
替换为
如果arr(第1行,第1列)0,则替换为表格(“Sheet1”)。单元格(第87行,第4行)=(第1行,第2列)/arr(第1行,第2列)*100)
感谢您的回复,欢迎使用!我很高兴它对你有用。请注明答案已被接受。祝你的项目好运。亲切的问候,不客气!我很高兴它对你有用。请注明答案已被接受。祝你的项目好运。亲切的问候,不客气!我很高兴它对你有用。请注明答案已被接受。祝你的项目好运。亲切问候,,