< p >大家好。今天我们将继续解释VBA阵列和字典解决方案。今天我们将解释第75课的内容:使用数组将工资单分解成工资单
实际应用中有许多字典和数组。如果你是一名财务官员,你可以考虑我今天所说的和我接下来要说的,也就是如何把工资单变成工资单。让我们根据下面的例子来解释。
实例,如
的截图是一个工作表。这些工资单的内容被更改为工资单,即每个工资单都有一个标题。为了便于分发,每张工资单之间应该留出多少空间?今天我将解释仅使用数组的方案。在下一堂课中,我将解释使用字典的方法。
思维分析:首先将数据放入数组,然后提取每一行数据进行处理,回填数据,然后复制格式
请看我在下面给出的代码:
Sub mynzsz_75()'第75讲使用数组将薪资表分解为工资单
Dim mybr()
页(“75”),选择
号 “”将源数据存储到数组
中码=范围(“a1:f”&范围(“a1”)。结束(xlDown)。行)
“”结果放在动态数组mybrr
中雷迪姆保护mybrr(1至6,1至UBound(myarr,1) * 3 - 3)
对于i = 2至UBound(myarr)
将记录I存入my crr
毫秒=应用。指数(myarr,I,0)
'设置行
t = (i - 1) * 3 - 2
'mybrr()是列和行的赋值
。对于j = 1至UBound(mycrr)
myrr(j,t) =应用。指数(myarr,1,0)(j)
mybrr,t + 1) = mycrr(j)
Next
Next i
页(“工资单打印”)。选择
单元格。Clear
'在工资单上填写数据
号带范围(“a1”)。调整大小(UBound(mybrr,2),6)
'结果将被转置并回填
。值=应用。移调(mybrr)
'在工资单上填写格式
号张(“75”)。范围(“a1: F3”)。这里的“复制”是A1:F3
。特殊单元格(xlCellTypeConstants,23)。选择
。粘贴纸特殊xl粘贴纸格式
应用程序。CutCopyMode = False
以
结束End Sub
代码:
的屏幕截图
代码分析:
1上述代码将工作表转换为工资单这堂课的内容主要使用数组、数组的提取、数组的转置、格式的复制等。
2 'mybrr()是列和行的赋值
。对于j = 1至UBound(mycrr)
myrr(j,t) =应用。指数(myarr,1,0)(j)
mybrr,t + 1) = mycrr(j)
Next
在上表中,工资数据按行存储在mybrr中,并且MYBRR (J,T) =应用程序。索引(MYARR,1,0) (J)设置行数据的标题。注意要理解这里(j,t)的意思,j是列,t是行。
3 '在工资单上填写数据
号带范围(“a1”)。调整大小(UBound(mybrr,2),6)
'结果将被转置并回填
。值=应用。移调(mybrr)
上述语句用换位进行了回填,行和列返回到它们的正常位置。
4 '在工资单上填写
格式张(“75”)。范围(“a1: F3”)。这里的“复制”是A1:F3
。特殊单元格(xlCellTypeConstants,23)。选择
。粘贴纸特殊xl粘贴纸格式
应用程序。CutCopyMode = False
以上有望实现格式复制。理解抄写时,请注意多抄写一行。
请看下面运行的代码: