|
关于数组化简,考虑到1-33是连续数,因此直接把源数据的数累加到经此数为数组下标的数组中。
关于改错,原代码只要加一句把K列清空即可,每次累加都在原K列的基础上,不清空当然会错。
- Sub 数组()
- Dim arr, arr1, x
- [j10].Resize(100) = ""
- arr = Sheet1.Range("b10:g39")
- arr1 = Sheet1.Range("i10:j42") '第一个化简,少用I列这个循环,1至33这33个数字,如何改
- For Each x In arr
- arr1(x, 2) = arr1(x, 2) + 1
- Next
- [j10].Resize(UBound(arr1)) = Application.Index(arr1, , 2)
- End Sub
- Sub 单元格()
- [k10].Resize(100) = ""
- For i = 10 To 39
- For j = 2 To 7
- For k = 10 To 42
- If Cells(i, j) = Cells(k, 9) Then '为什么单击一次J列结果正确,什么原因第二次单击J列结果会递增,而数组不会
- Cells(k, 11) = Cells(k, 11) + 1
- End If
- Next
- Next
- Next
- End Sub
复制代码 |
评分
-
查看全部评分
|