一个excel中有50个sheet工作表,1001-1050,如何将每个工作表的第一行一起复制在一个新的excel或者sheet

一个excel中有50个sheet工作表,1001-1050,如何将每个工作表的第一行一起复制在一个新的excel或者sheet中,然后每个表的第一行以列的方式排列在一张新表中。

第1个回答  2013-09-25

新建工作表,假设为SHEET1,并放在最后,1001——1050放在最前面50个,右键SHEET1,查看代码,粘贴代码,运行代码。

Sub a()
Dim i%, j%
j = 1
For i = 1 To 50
    Sheets(i).Rows(1).Copy
    Cells(1, j).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    j = j + 1
    Application.CutCopyMode = False
Next i
End Sub

追问

这个代码试过可以,不过是列的需要数据结果,需要转置,谢谢

这个代码试过可以,不过是列的需要数据结果,需要转置,谢谢

追答

你不是说需要转置吗?我已经给我设置为竖向复制了啊。
已经把行复制成列了。

第2个回答  2013-09-26
选中SHEET1001的一行数据,按CTRL+CC(连续按2次C),表格右侧会出现剪贴板,并显示已复制的数据。选中SHEET1002的一行数据,复制(按CTRL+C),选第三个表的数据复制,选第四个表的数据复制,....50个表都复制完成后,在预定SHEET中,点剪贴板上方的“全部粘贴”,数据就都粘贴到新的表格中了。
方法比较笨,但数据可靠,不会变化,不容易出错,也不会因为不打开旧表而不能使用等情况。追问

试过,没有成功

追答

我只讲了复制--粘贴的方法。补充为,全部粘贴后,再复制一次,在新的位置,编辑---选择性粘贴---转置---确定。行数据,就变为列数据了。

本回答被网友采纳
第3个回答  2013-09-25
=INDIRECT((1000+COLUMN(A1))&"!"&ADDRESS(1,ROW(A1)))

向下复制 然后再向右复制
相似回答