|
- Sub 故障数据分析()
- Dim wb As Workbook, Sh As Worksheet
- Dim nR%, nR1%, Rq$, ds As Object, Arr(), Brr()
- Set ds = CreateObject("Scripting.dictionary") '创建一个字典对象
- 'On Error Resume Next
- Application.ScreenUpdating = False
- For Each Sh In Worksheets '循环工作表
- If Sh.Name <> "首页" Then
- With Sh
- If .Range("b2").Value <> "" Then '如果不是空表
- Rq = Format(.Range("b2").Value, "yyyymmdd")
- nR = .Range("b1").End(xlDown).Row
- For i = 11 To 17 Step 2
- .Cells(2, i).Resize(nR, 1).ClearContents '清除原统计结果
- Next
- Arr = .Range("a2:q" & nR).Value
- Set wb = GetObject(Sheets("首页").Range("D6").Text & "\小区故障时长" & Rq & ".xlsx") '打开数据工作簿
- If err = 0 Then
- With wb.Sheets("Report1")
- If .Range("a2") <> "" Then
- nR1 = .Range("a1").End(xlDown).Row
- Brr = .Range("a2:f" & nR1).Value
- For i = 1 To nR1 - 1
- If Brr(i, 6) <> 0 Then
- ds(Brr(i, 1) & Brr(i, 2) & Rq) = ds(Brr(i, 1) & Brr(i, 2) & Rq) + 1
- End If
- Next
- For i = 1 To nR - 1
- For j = 10 To 16 Step 2
- If Arr(i, j) <> "" Then
- Arr(i, j + 1) = Arr(i, j + 1) + ds(Arr(i, 1) & Arr(i, j) & Rq)
- End If
- Next
- Next
- End If
- End With
- wb.Close
- .Range("a2:q" & nR).Value = Arr
- Else
- err.Clear
- End If
- End If
- End With
- End If
- Next
- Application.ScreenUpdating = True
- End Sub
复制代码 代码运行到nR1 = .Range("a1").End(xlDown).Row 这一行的时候提示溢出,请问大师们,这是什么问题呢?
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符号 (%)。
Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。
在03里,这个整型就会溢出了,65536吧。
|
|