使用二维数组和字典去重,VBA对应转换Excel工作表行、列数据(VX公众号:Excel潘谆白说VBA)
文章目录
- 前言
- 一、效果如图:
- 二、操作思路:
- 三、代码如下:
- 1.创建二维数组并赋值
- 2.字典去重
- 3.新工作表创建及赋值
前言
工作或学习中,是否遇到过这样的事,手上的Excel工作表设计不合适,需要将行和列的数据全部调换或部分调换。
一、效果如图:
如果手动调整的话,就需要“筛选”—“复制粘贴”,假如“姓名”列不一致,还可能要用到VLookUP或其他函数,总不能一个个数值对应的去复制粘贴吧。
还是用VBA代码吧,只要你能想到,几乎都能做到。
二、操作思路:
1、运用字典,对“姓名”列的人员名单去重,并将去重后的姓名保存在一维数组内;
2、定义二维数组,分别保存姓名及对应的“科目”“分数”;
3、创建新工作表,将所有科目名称放在第一行;
4、将所有去重后姓名放在新工作表“姓名”列,并添加序号,并将二维数组的数值依次放到对应单元格。
三、代码如下:
1.创建二维数组并赋值
Function ArrTwo(arrA() As String, RowsCount As Integer) '创建二维数组并赋值
ReDim arrA(RowsCount, 3)
For i = 2 To RowsCount
arrA(i - 2, 0) = ActiveSheet.Cells(i, 2).Value
arrA(i - 2, 1) = ActiveSheet.Cells(i, 3).Value
arrA(i - 2, 2) = A