|
Sub Macro1()
Dim arr, i&
i = Range("ac" & Rows.Count).End(xlUp).Row
arr = Range("ac2:ax" & i)
For i = 1 To UBound(arr)
If arr(i, 1) > 1 Then arr(i, 2) = IIf(arr(i, 22) = "a", "s", "t")
If arr(i, 22) = 2 Then arr(i, 20) = arr(i, 20) & "b": arr(i, 22) = ""
Next
Range("ac2").Resize(UBound(arr), 22) = arr
'Range("ad2").Resize(UBound(arr)) = Application.Index(arr, , 2)
End Sub
因为涉及第2,20,22列改变,所以重新写入arr是对的。
如果只有一列改变,可用注释中的语句index。 |
|