永发信息网

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

答案:6  悬赏:10  手机版
解决时间 2021-02-23 22:56
  • 提问者网友:美人性情
  • 2021-02-23 08:03
如何将一个EXCEL中多个工作表的第H列全部顺序复制到另一个EXCEL表格中?
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-02-23 08:20
要求不够详细啊,第H列?就是H列吗?复制到另外一个Excel表格中是从A列往后排序吗?
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-02-23 13:22
这个除手工之外,只能用VBA编程来完成。
  • 2楼网友:人類模型
  • 2021-02-23 12:39
只能新建一个表格,从50个工作表中复制H项的全部值一个一个复制到那新表格里了,没什么特快速的方法了``
  • 3楼网友:轻雾山林
  • 2021-02-23 11:07
假设总表为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的相应位置。
  • 4楼网友:人间朝暮
  • 2021-02-23 10:38
打开你要的处理的文件,表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张表测试下,确定程序可用后再使用,我只能尽量保证程序的可用性,但本人不对数据造成的任何后果负责。
  • 5楼网友:走死在岁月里
  • 2021-02-23 09:58

比如将如下图示工作表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张工作表),点确定。最后得到如下合并效果:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯