比如将如下图示工作表1、2、3、4,H列合并。

第一种方法:复制、粘贴这个没什么好说的。
第二种方法:利用VBA来实现。
1、按ALT+F11打开VBE编辑器,在工程窗口下的Microsoft Excel对象右键-插入-模块,新建一个模块1,粘贴如下代码:
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
2、按ALT+F8打开宏对话框窗口,鼠标单击执行columncopy宏。在弹出的“列号输入(请输入大写字母)”对话框中输入所需的列号(比如“H”列),点确定。接着在弹出的“指定工作表(请输入数字)”对话框中按照要求输入所需的工作表(比如:“1,2-3,4”即为第1,2至3,4张工作表),点确定。最后得到如下合并效果:
