如何在excel中将数据从多列和多行移动到1行

时间:2017-10-30 12:28:52

标签: excel vba excel-vba

我想将多个列和行中的所有数据移动到Excel中的单个行中。即A1,A2,B1,B2为A1,B1,C1,D1。我需要这个的原因是我可以复制并粘贴一行文字。

2 个答案:

答案 0 :(得分:2)

我认为你需要的东西比你提出的问题更复杂。我会在文本编辑器(例如notepad ++)中亲自复制/粘贴整个文件,然后用换行符替换制表符,然后将它们复制/粘贴到excel中。

如果这不是一个选项,我建议使用一些数学(原始数据在Sheet1上):

=INDEX(Sheet1!$A$3:$C$4,INT((ROW()-1)/3)+1,MOD(ROW()-1,3)+1)

适当更改Sheet1!$A$3:$C$4。当你得到#REF !,这意味着它就是表格的结尾。

enter image description here

答案 1 :(得分:1)

下面的代码会将数据从sheet1转换为sheet2 4个cols,请告诉我这是否是你需要的。

    Sub trans()
Dim x, y As Integer


x = Sheets("Sheet1").Range("xfd3").End(xlToLeft).Column
y = Sheets("Sheet1").Range("a65536").End(xlUp).Row

For j = 1 To y
    For p = 1 To 4
    Z = Sheets("Sheet2").Range("A65536").End(xlUp).Row
       Sheets("Sheet1").Cells(j + 2, p).Copy
       Sheets("Sheet2").Range("A" & Z + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False

        Next p
    Next j


End Sub