|
本帖最后由 hahada 于 2013-5-29 12:13 编辑
Sub Macro1()
Dim arr, i&, j&, lr&, s$
s = "w7230021"
With Range("B17:B" & Range("a65536").End(xlUp).Row)
arr = .Value
lr = UBound(arr)
For i = 1 To lr Step 3
m = m + 1
n = 0
For j = i To i + 2
If j > lr Then Exit For
n = n + 1
arr(j, 1) = s & m & n
Next
Next
.Value = arr
End With
End Sub
本帖最后由 1032446692 于 2013-5-26 22:24 编辑
Sub Macro1()
Dim arr, i&, j&, lr&, s$ '定义变量
s = "w7230021" '给变量s赋值
With Range("B17:B" & Range("a65536").End(xlUp).Row) ‘with与后面的end with是配套的,在这之间调用他后面的对象的属性可以直接用"."+属性/方法名。Range("a65536").End(xlUp).Row是指从a65536单元格向上查找第一个非空单元格的行
arr = .Value ‘把with后面的对象Range("B17:B" & Range("a65536").End(xlUp).Row)的Value属性值复制给arr
lr = UBound(arr) ’把数组arr第一维的最大下标复制给变量ir
For i = 1 To lr Step 3 ‘for..next之间是从1到ir以三个一间隔的循环
m = m + 1 ’把变量m加1后复制给变量m
n = 0 '给变量赋值
For j = i To i + 2 ‘内部循环,从当前的i这个数开始,到i+2结束
If j > lr Then Exit For ’如果 j > lr 推出该循环
n = n + 1 ‘同上赋值
arr(j, 1) = s & m & n ’把s,m,n连接起来复制给数组的元素arr(j,1)
Next
Next
.Value = arr '把arrf赋值给with后的对象的alue属性
End With
End Sub
|
|