VBA解释这句什么意思,A(X) = 1代表什么2
VBA解释这句什么意思,A(X)=1代表什么SubTEST1()DimArr,X,A%(1To33),N%,B(1To33),i%,j&,k%ForEachXIn[J10...
VBA解释这句什么意思,A(X) = 1代表什么
Sub TEST1()
Dim Arr, X, A%(1 To 33), N%, B(1 To 33), i%, j&, k%
For Each X In [J10:L10]
If X > 0 Then A(X) = 1: N = N + 1 '解释这句什么意思,A(X) = 1代表什么
Next '能不能用基本写法,重新写一次,看不懂这个 展开
Sub TEST1()
Dim Arr, X, A%(1 To 33), N%, B(1 To 33), i%, j&, k%
For Each X In [J10:L10]
If X > 0 Then A(X) = 1: N = N + 1 '解释这句什么意思,A(X) = 1代表什么
Next '能不能用基本写法,重新写一次,看不懂这个 展开
展开全部
比如:J10=6,那么第一次FOR运算的时候,X→J10,
A(X)=A(6) . A(X)=1,就相当于给数组A(6)赋值为1
A(X)=A(6) . A(X)=1,就相当于给数组A(6)赋值为1
更多追问追答
追答
ub TEST1() '大神的代码很好,再改都没这么简洁的了
Dim Arr, X, A%(1 To 33), N%, B(1 To 33), i%, j&, k%
For Each X In [J10:L10]
If X > 0 Then
A(X) = 1
N = N + 1
End If
Next '这段意思是说,对你给定的黄字,赋值到数组中,比如给的数字是2,3,9,则A(2)、A(3)、A(9) = 1,其他A(i)=0。N是黄字的总数量
Arr = Range([C11], [C65536].End(3)(1, 6)) 'Arr代表你的数据区域A11:H39
For j = 1 To UBound(Arr) - 1
X = 0
For k = 1 To 6 ' Arr(j,k)代表Arr(数据区域)中的第j行的第k个数字,如果它是黄字中包含的,上面写了A(Arr(x,y))=1,否则为0
X = X + A(Arr(j, k))
Next '这个FOR循环结束后,X就是第j行包含黄字的数量
If X = N Then '如果j行包含黄字的数量,和黄字总数量相同,才继续计算,否则就是不符合条件的。
For i = 1 To 6
B(Arr(j + 1, i)) = B(Arr(j + 1, i)) + 1
Next '这个For循环将j+1行中几个存在的数字,进行累计计数存到数组B()中。第j行符合条件了,j+1行第i个数:Arr(j+1,i)存到数组中。比如Arr(j+1,i)=8,则把B(8)原来累计次数+1
End If
Next j
[J12].Resize(1, 33) = B 'B(1)、B(2)……分别代表 1的跟随次数,2的跟随次数。 这句是将B数组横向粘贴到J12单元格上。
End Sub
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询