excel指定工作表中的指定列快速顺序合并的方法
1、分别有工作表1、2、3、4,数据如下图示:




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

3、粘贴如下代码:
Option Explicit
Sub 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 Integer
flag = False
c = InputBox("请输入列号,如:A、B、C……", "列号输入(请输入大写字母)")
For i = 1 To Sheets.Count
If Sheets(i).Name = "第" & c & "列合并数据" Then flag = True
Next
If flag = False Then
Set sh = Worksheets.Add
sh.Name = "第" & c & "列合并数据"
Sheets("第" & c & "列合并数据").Move after:=Sheets(Sheets.Count)
End If
b = InputBox("请指定需合并列的工作表,多张连续表请用“-”隔开,多张不连续表请用“,”隔开,如:1,2,3-5,6等。", "指定工作表(请输入数字)")
arr = Split(b, ",", -1, vbTextCompare)
If Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).Column = 1 Then
l = Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).Column
Else
l = Sheets("第" & c & "列合并数据").Range("iv1").End(xlToLeft).Column + 1
End If
For 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 j
Else
Sheets(CInt(arr(i))).Columns(c & ":" & c).Copy Destination:=Sheets("第" & c & "列合并数据").Cells(1, l)
l = l + 1
End If
Next
End Sub

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

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

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

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