|
再来一个,
不连续区域给不连续区域赋值问题的解决方案
前提是这两个区域相等
Dim rng1 As Range, rng2 As Range, arr1, arr2, rng11 As Range, rng22 As Range
Dim a As String, b As String
Sub ddd()
Set rng1 = Union(Sheet1.Range("B1:B23"), Sheet1.Range("B36:B41"), Sheet1.Range("B51:B56"), Sheet1.Range("B69:B74"), Sheet1.Range("B84:B89"))
Set rng2 = Union(Sheet1.Range("c1:c23"), Sheet1.Range("c36:c41"), Sheet1.Range("c51:c56"), Sheet1.Range("c69:c74"), Sheet1.Range("c84:c89"))
For Each rng11 In rng1
If Len(a) = 0 Then
a = rng11.Value
Else
a = a & "," & rng11.Value
End If
Next
For Each rng22 In rng2
If Len(b) = 0 Then
b = rng22.Address
Else
b = b & "," & rng22.Address
End If
Next
arr1 = Split(a, ",")
arr2 = Split(b, ",")
rng2.Select
rng2.ClearContents
For i = 0 To UBound(arr1)
Sheet1.Range(arr2(i)) = arr1(i)
Next i
End Sub
|
|