关于Excel VBA翻译
发布网友
发布时间:2022-05-02 12:06
我来回答
共1个回答
热心网友
时间:2022-06-20 00:19
1,Range("B41:C45").ClearContents
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";