excel指定工作表中的指定列快速顺序合并的方法

 时间:2024-10-21 10:34:12

1、分别有工作表1、2、3、4,数据如下图示:

excel指定工作表中的指定列快速顺序合并的方法
excel指定工作表中的指定列快速顺序合并的方法
excel指定工作表中的指定列快速顺序合并的方法
excel指定工作表中的指定列快速顺序合并的方法

2、按ALT+F11打开VBE编辑器,在工程窗口下的Microsoft Excel对象右键-插入-模块,新建一个模块1。

excel指定工作表中的指定列快速顺序合并的方法

3、粘贴如下代码:Option ExplicitSub columncopy()Dim c As String, sh As Worksheet, i As Integer, flag As Boolean, b As String, arr, l As Integer, j As Integer, min As Integer, max As Integerflag = Falsec = InputBox("请输入列号,如:A、B、C……", "列号输入(请输入大写字母)")For i = 1 To Sheets.CountIf Sheets(i).Name = "第" & c & "列合并数据" Then flag = TrueNextIf flag = False ThenSet sh = Worksheets.Addsh.Name = "第" & c & "列合并数据"Sheets("第" & c & "列合并数据").Move after:=Sheets(Sheets.Count)End Ifb = InputBox("请指定需合并列的工作表,多张连续表请用“-”隔开,多张不连续表请用“,”隔开,如:1,2,3-5,6等。", "指定工作表(请输入数字)")arr = Split(b, ",", -1, vbTextCompare)If Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).Column = 1 Thenl = Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).ColumnElsel = Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).Column + 1End IfFor i = 0 To UBound(arr)If InStr(arr(i), "-") Then min = Split(arr(i), "-", -1, vbTextCompare)(0) max = Split(arr(i), "-", -1, vbTextCompare)(1) For j = min To max Sheets(j).Columns(c & ":" & c).Copy Destination:=Sheets("第" & c & "列合并数据").Cells(1, l) l = l + 1 Next jElse Sheets(CInt(arr(i))).Columns(c & ":" & c).Copy Destination:=Sheets("第" & c & "列合并数据").Cells(1, l) l = l + 1End IfNextEnd Sub

excel指定工作表中的指定列快速顺序合并的方法

4、按ALT+F8打开宏对话框窗口,鼠标单击执行columncopy宏。

excel指定工作表中的指定列快速顺序合并的方法

5、在弹出的“列号输入(请输入大写字母)”对话框中输入所需的列号(笔者测试输入:“B”列),点确定。

excel指定工作表中的指定列快速顺序合并的方法

6、在弹出的“指定工作表(请输入数字)”对话框中按照要求输入所需的工作表(笔者测试输入:“1,2-3,4”即为第1,2至3,4张工作表),点确定。

excel指定工作表中的指定列快速顺序合并的方法

7、最后得到如图示的效果。

excel指定工作表中的指定列快速顺序合并的方法
  • excel怎么批量增加固定文字
  • 如何让表格当中的数据强制换行?
  • EXCEL中如何快速查找出所有的合并单元格
  • 在Excel中怎么将前几项单元格特别显示?
  • 如何EXCEL通过第几周获得日期或者天(星期几)
  • 热门搜索
    动物手抄报内容 小学生廉洁手抄报 文明小学生手抄报 健康教育手抄报资料 生物手抄报内容 有关长城的手抄报 手抄报感恩 爱国的手抄报内容 感恩自然手抄报内容 清明手抄报资料大全