excel重新排序

来源:互联网 发布:我要自学网单片机 编辑:程序博客网 时间:2024/06/14 23:29

标题 ##H1 1、复制选项至word中

ABCD
ABD
ABC
ABC
ABCD
ABC
ABC
ABD
ACD

标题 ##2、为每个字符加入tab空格

Crtl+H快捷键调出替换操作,按照下列方式勾选,其中所有字符均为英文字符。tab空格得到方法是,在excel同一行两个相邻单元格中随便输入两个字符,复制到txt文本中,两个字符之间就会有一个tab空格。
这里写图片描述

标题 ##3、将替换好的内容复制到新建excel表格中

注意有位置要求,应该放在第二行开始的第4列至第7列中,需要与下图一致
这里写图片描述

标题 ##4、使用vba编程

使用alt+F11快捷键,调出VBA编程界面,双击新建工作表,复制如下代码至右侧编程区域,

注意:‘所有操作都必须从第2行开始

‘上面是对A,B,C,D,E字母进行重新排列,顺序需要与选项内容顺序一致。

Sub reflect1(signal, i, j)
If (signal = “A”) Then ‘A-B
Cells(i, 18 + j) = “B”
ElseIf (signal = “B”) Then ‘B-D
Cells(i, 18 + j) = “D”
ElseIf (signal = “C”) Then ‘C-A
Cells(i, 18 + j) = “A”
ElseIf (signal = “D”) Then ‘D-C
Cells(i, 18 + j) = “C”
ElseIf (signal = “E”) Then
Cells(i, 18 + j) = “E”
End If
End Sub

Sub reflect2(signal, i, j)
If (signal = “A”) Then ‘A-C
Cells(i, 18 + j) = “C”
ElseIf (signal = “B”) Then ‘B-D
Cells(i, 18 + j) = “D”
ElseIf (signal = “C”) Then ‘C-B
Cells(i, 18 + j) = “B”
ElseIf (signal = “D”) Then ‘D-A
Cells(i, 18 + j) = “A”
ElseIf (signal = “E”) Then ‘E-E
Cells(i, 18 + j) = “E”
End If
End Sub

Sub reflect3(signal, i, j)
If (signal = “A”) Then ‘A-D
Cells(i, 18 + j) = “D”
ElseIf (signal = “B”) Then ‘B-B
Cells(i, 18 + j) = “B”
ElseIf (signal = “C”) Then ‘C-A
Cells(i, 18 + j) = “A”
ElseIf (signal = “D”) Then ‘D-C
Cells(i, 18 + j) = “C”
ElseIf (signal = “E”) Then ‘E-E
Cells(i, 18 + j) = “E”
End If
End Sub

Sub reflect4(signal, i, j)
If (signal = “A”) Then
Cells(i, 18 + j) = “B” ‘A-B
ElseIf (signal = “B”) Then
Cells(i, 18 + j) = “A” ‘B-A
ElseIf (signal = “C”) Then
Cells(i, 18 + j) = “D” ‘C-D
ElseIf (signal = “D”) Then
Cells(i, 18 + j) = “C” ‘D-C
ElseIf (signal = “E”) Then
Cells(i, 18 + j) = “E” ‘E-E
End If
End Sub

Sub reflect5(signal, i, j)
If (signal = “A”) Then
Cells(i, 18 + j) = “B” ‘A-B
ElseIf (signal = “B”) Then
Cells(i, 18 + j) = “C” ‘B-C
ElseIf (signal = “C”) Then
Cells(i, 18 + j) = “D” ‘C-D
ElseIf (signal = “D”) Then
Cells(i, 18 + j) = “A” ‘D-A
ElseIf (signal = “E”) Then
Cells(i, 18 + j) = “E” ‘E-E
End If
End Sub

Sub cgz()
For i = 2 To 774 ‘其中774是结束行,实际数量根据实际情况调整
If i Mod 5 = 0 Then
For j = 4 To 7
reflect1 Cells(i, j), i, j - 4
Next
ElseIf i Mod 5 = 1 Then
For j = 4 To 7
reflect2 Cells(i, j), i, j - 4
Next
ElseIf i Mod 5 = 2 Then
For j = 4 To 7
reflect3 Cells(i, j), i, j - 4
Next
ElseIf i Mod 5 = 3 Then
For j = 4 To 7
reflect4 Cells(i, j), i, j - 4
Next
ElseIf i Mod 5 = 4 Then
For j = 4 To 7
reflect5 Cells(i, j), i, j - 4
Next
End If
Next i
End Sub

如图:
这里写图片描述

标题 ##5、运行宏,如图

这里写图片描述
会出现:
这里写图片描述
点击运行。

标题 ##6、选项排序完成

在18-21行,会出现新的选项排序,如图
这里写图片描述

标题 ##7、选项顺序规整

虽然选项顺序已经重新排列,但是发现每一个的顺序不规整,需要进行规整,复制如下代码替换上述代码,重新运行.

注意:‘所有操作都必须从第2行开始

Sub cgzPaixu()
For i = 2 To 774 ‘同理, 774根据实际情况调整
For j = 18 To 21
If (Cells(i, j) = “A”) Then
Cells(i, 10) = “A”
ElseIf (Cells(i, j) = “B”) Then
Cells(i, 11) = “B”
ElseIf (Cells(i, j) = “C”) Then
Cells(i, 12) = “C”
ElseIf (Cells(i, j) = “D”) Then
Cells(i, 13) = “D”
ElseIf (Cells(i, j) = “E”) Then
Cells(i, 14) = “E”
End If
Next j
Next i
End Sub

结果如图所示:在10-13列出现规整的选项
这里写图片描述

标题 ##8.去掉多余空格

全部复制10-13列内容至txt文档,如图,ctrl+H删除其中的tab空格,

这里写图片描述
结果为
这里写图片描述

标题 ##9、复制回excel原选项位置,至此选项排序完成。

标题 ##10、下面是选项内容排序

打开VBA编辑器,双击需要重新排序的excel表,将下列代码复制到vba中。如我的需要重新排序的内容所在excel表是多选题,双击多选题表,复制代码
‘对选项内容进行排序,后面是如何重排顺序,例如C-A表示,原在第6列的C选项放到现在17列的A选项位置

注意:‘所有操作都必须从第2行开始

Sub cgz()
For i = 2 To 774 ‘所有操作都必须从第2行开始
If i Mod 5 = 0 Then
Cells(i, 17) = Cells(i, 6) ‘C-A
Cells(i, 18) = Cells(i, 4) ‘A-B
Cells(i, 19) = Cells(i, 7) ‘D-C
Cells(i, 20) = Cells(i, 5) ‘B-D
Cells(i, 21) = Cells(i, 8) ‘E-E
ElseIf i Mod 5 = 1 Then
Cells(i, 17) = Cells(i, 7) ‘D-A
Cells(i, 18) = Cells(i, 6) ‘C-B
Cells(i, 19) = Cells(i, 4) ‘A-C
Cells(i, 20) = Cells(i, 5) ‘B-D
Cells(i, 21) = Cells(i, 8) ‘E-E
ElseIf i Mod 5 = 2 Then
Cells(i, 17) = Cells(i, 6) ‘C-A
Cells(i, 18) = Cells(i, 5) ‘B-B
Cells(i, 19) = Cells(i, 7) ‘D-C
Cells(i, 20) = Cells(i, 4) ‘A-D
Cells(i, 21) = Cells(i, 8) ‘E-E
ElseIf i Mod 5 = 3 Then
Cells(i, 17) = Cells(i, 5) ‘B-A
Cells(i, 18) = Cells(i, 4) ‘A-B
Cells(i, 19) = Cells(i, 7) ‘D-C
Cells(i, 20) = Cells(i, 6) ‘C-D
Cells(i, 21) = Cells(i, 8) ‘E-E
ElseIf i Mod 5 = 4 Then
Cells(i, 17) = Cells(i, 7) ‘D-A
Cells(i, 18) = Cells(i, 4) ‘A-B
Cells(i, 19) = Cells(i, 5) ‘B-C
Cells(i, 20) = Cells(i, 6) ‘C-D
Cells(i, 21) = Cells(i, 8) ‘E-E
End If
Next i
End Sub

这里写图片描述
点击运行宏,之后结果如图,注意必须包括5个选项!第五个选项可以是空白,但必须补齐。也可以自己手动修改代码,删去第五个选项。

这里写图片描述

标题 ##11、删除原有选项,整理新的选项,任务完成。

标题 ##12、启用宏

这里写图片描述
选项->信任中心->信任中心设置->宏设置->启用所有宏

这里写图片描述

标题 ##13、单选题重新排序

只需使用第4步,以及第10步即可。

原创粉丝点击