首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Excel:将行转换为列

MS Excel:将行转换为列
EN

Stack Overflow用户
提问于 2014-07-25 18:41:22
回答 2查看 88关注 0票数 0

如果Excel电子表格中有几行,那么:

代码语言:javascript
复制
Number      Email-1      Email-2      Email-X   Email-XX
12345       address1     address2     addressX  addressXX
67890       address1     address2     addressX
98765       address1     address2     addressX  addressXX

我需要将所有的电子邮件地址集中在一列中,并在相邻的一列中附上它们的编号:

代码语言:javascript
复制
Number      Email
12345       address1
12345       address2
12345       addressX
12345       addressXX
67890       address1
67890       address2
67890       addressX
98765       address1
98765       address2
98765       addressX
98765       addressXX

我怎样才能做到这一点?我尝试过改变粘贴特别->转置,但这让我是这样的:

代码语言:javascript
复制
 12345
 address1
 address2
 addressX
 addressXX

想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-25 19:18:02

此宏假定原始数据在Sheet1中,输出数据将用Sheet2编写。

代码语言:javascript
复制
Sub dural()
    Dim N As Long, s1 As Worksheet, s2 As Worksheet, _
        i As Long, j As Long, M As Long, v As Variant, _
        k As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    N = s1.Cells(Rows.Count, "A").End(xlUp).Row
    k = 1
    For i = 2 To N
        v = s1.Cells(i, "A").Value
        M = s1.Cells(i, Columns.Count).End(xlToLeft).Column
        For j = 2 To M
            s2.Cells(k, 1).Value = v
            s2.Cells(k, 2).Value = s1.Cells(i, j).Value
            k = k + 1
        Next j
    Next i
End Sub
票数 1
EN

Stack Overflow用户

发布于 2014-07-25 18:47:52

在行和列之间移动数据,在一个或多个列或行中复制数据。在粘贴复制的数据之前,右键单击第一个目标单元格(要粘贴数据的行或列的第一个单元格),然后单击“粘贴特殊”。在“粘贴特殊”对话框中,选择“转置”,然后单击“确定”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24962462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档