Range()是區域的意思,Range("B41:C45")就是指由左上角為單元格"B41"和右下角為單元格"C45"組成的區域;ClearContents是清除內容。
所以本行代碼就是,清除區域"B41:C45"裏的內容。
2,Dim arr1
聲明壹個變量,其類型為變體類型
3,Set dic1 = CreateObject("scripting.dictionary")
Set dic2 = CreateObject("scripting.dictionary")
實例化對象;這兩個都是scripting字典對象
說明:壹個字典,其實就是壹個二維數組,並且該二維數組的第1維度的下標表示字典數據的個數序號,第2維度下標為1 To 2,兩個維度存放的數據分別表示字典項的關鍵字和數據;
有關字典的概念,請百度搜索有關詳細描述。
4,arr1 = Range("c6:d38").Value
這裏Value是數值的意義,本行代碼把區域"c6:d38"的數據賦予變量arr1,也是變量以二維數組類型存放數據。
因為壹個區域,是由若幹行若幹列構成的二維表格,所以使用二維數組存放該區域數據。
該區域包括33行2列,所以二維數組為arr1(1 To 33,1 To 2)
5,
For a = LBound(arr1) To UBound(arr1)
dic1(arr1(a, 1) & arr1(a, 2)) = arr1(a, 1)
dic2(arr1(a, 1) & arr1(a, 2)) = arr1(a, 2)
Next
這裏通過循環,把區域數據賦予字典;
區域的第1列數據,存放在數組的第1列裏,賦予字典dic1
區域的第2列數據,存放在數組的第2列裏,賦予字典dic2
6.
Range("b41").Resize(dic1.Count) = Application.Transpose(dic1.items)
Resize -- 尺寸大小
這行代碼:
等號左邊的含義:是從單元格"b41"開始,定義連續的單元格區域個數dic1.Count,這個是按照字典裏數據個數的多少來定義單元格數量。
等號本身是表示 賦值
等號右邊Application.Transpose(dic1.items),是使用Application.Transpose方法,把字典dic1的所有數據項的值顯示在等式左邊定義的區域裏。
Range("c41").Resize(dic1.Count) = Application.Transpose(dic2.items)
這行代碼就是把字典dic2的所有數據項的值顯示在等式左邊定義的區域裏。
所以,整個代碼的功能就是;
先清除區域"B41:C45"裏的內容。
然後,把"C6:C38"這壹列數據,復制到"b41:b73";
把"d6:d38"這壹列數據,復制到"c41:c73";