永发信息网

如何将一个EXCEL中多个工作表的第H列全部顺序复制到另一个EXCEL表格中?

答案:6  悬赏:10  手机版
解决时间 2021-02-23 22:56
如何将一个EXCEL中多个工作表的第H列全部顺序复制到另一个EXCEL表格中?
最佳答案
要求不够详细啊,第H列?就是H列吗?复制到另外一个Excel表格中是从A列往后排序吗?
全部回答
这个除手工之外,只能用VBA编程来完成。
只能新建一个表格,从50个工作表中复制H项的全部值一个一个复制到那新表格里了,没什么特快速的方法了``
假设总表为A,50个工作表(sheet)为A1-A50。
1、跨sheet引用法:
(1)把表A1的H1引用到表A的B1单元格里:在表A的B1单元格内输入公式【='A1'!$H1】后回车;
(2)引用表A1的所有H列数据:单击表A的单元格B1,然后将鼠标移动到B1外方框的右下角,鼠标变为一个+号后,摁住左键向下拖拽至行500。表A1的H列数据全部引用到表A;
(3)引用表A2的H列数据:单击表A的单元格B1,然后将鼠标移动到B1外方框的右下角,鼠标变为一个+号后,摁住左键向右拖拽到B2。单击B2,修改公式内容为【='A2'!$H1】后回车。按照(2)的方法引用所有H列数据;
(4)A3-A50的数据引用参照(3)即可。
2、数据复制法:
(1)打开表A1,选中并复制H列的所有数据(假设为H1-H500);
(2)打开表A,将鼠标放在单元格B1,单击右键点击“选择性粘贴”,在对话框中选中“数值”然后点击确定;
(3)以此类推,将A2-A50的所有H列数据复制到表A的相应位置。
打开你要的处理的文件,表1,也就是第一个表,要是空表,要用来装结果文件的,对了,建议文件先备份。!!!
然后,按ALT + F11,双击SHEET1,在左边靠上角,粘贴以下代码,保存,然后按F5,就好了,
Sub tttt()
Sheets(1).Columns(8).ClearContents
Sheets(1).Cells(1, 8).Value = "结果"
Dim i As Integer
i = i + 1
For i = 2 To 3
If i > 1 Then
Dim j As Integer
j = j + 1
For j = 1 To 1000
If Sheets(1).Cells(j, 8).Value <> "" And Sheets(1).Cells(j + 1, 8).Value = "" Then
Dim n As Integer
n = n + 1
For n = 1 To 500
If n > 0 Then
Sheets(1).Cells(j + 1, 8).Value = Sheets(i).Cells(n, 8).Value
j = j + 1
End If
Next n
End If
Next j
End If
Next i
End Sub
值得注意的是,我只建立的3个表,测试通过,这个数据量很大,建议你也先用2到3张表测试下,确定程序可用后再使用,我只能尽量保证程序的可用性,但本人不对数据造成的任何后果负责。

比如将如下图示工作表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张工作表),点确定。最后得到如下合并效果:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
高一新生每天只睡六个半小时,对身体有影响吗
听说锐捷的RG-RSR77-X路由器在校园网的出口
怎样把电影导入iphone6播放器
同样公猫成年后土猫和加菲猫哪个更重些
百年灵手表怎样
小孩被小孩咬
近年来,人类探索太空的热情空前高涨,研究的
iphone7能不能防水?
什么叫职业学校
绿叶蔬果超市我想知道这个在什么地方
笔记本怎么装安卓系统
域名被腾讯管家报毒怎么可以一次解除?
under water和under the water有什么不同?
下列固体废物处置中,()适用于《一般工业固
结婚后 公公的死亡赔偿金 如果离婚是不是平均
推荐资讯
雍正皇帝是素食主义者吗?
关于国际银行帐号转帐的手续费问题
把子肉米饭地址在什么地方,想过去办事
有没有好一点的招聘软件?是我招聘别人。
mac版wps office有 么
金辉陶瓷怎么去啊,有知道地址的么
逆风笑用什么直播软件
漫画岛可以看下载漫画的大小吗,怎么看?
西关大众洗浴休闲中心地址在什么地方,想过去
一个人被人欺负,最后变的很厉害的电影
就是这种,超市卖的蒸馏水
新增人员的社保卡什么时候领得到,去领的时候
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?