Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel中将列转换为行_Excel_Vba - Fatal编程技术网

如何在Excel中将列转换为行

如何在Excel中将列转换为行,excel,vba,Excel,Vba,我有以下Excel工作表: A 1 foo 2 bar 3 baz 4 bam (事实上,该栏要长得多,这使得手动转位不再是一种选择)。如何将这张表转换为 A B C D 1 foo bar baz bam 我已尝试使用数据透视表函数,但无法获得所需的输出。我还可以编写一个(php)脚本来读取和转换Excel,但我无法想象这在Excel中是不容易做到的。然而,我一直无法找到这个问题的答案。你能帮忙吗?如果你只需要转置数据(即无格式),试试这个 有两种简单的非编程方式:

我有以下Excel工作表:

   A
1 foo
2 bar
3 baz
4 bam
(事实上,该栏要长得多,这使得手动转位不再是一种选择)。如何将这张表转换为

   A   B   C   D
1 foo bar baz bam

我已尝试使用数据透视表函数,但无法获得所需的输出。我还可以编写一个(php)脚本来读取和转换Excel,但我无法想象这在Excel中是不容易做到的。然而,我一直无法找到这个问题的答案。你能帮忙吗?

如果你只需要转置数据(即无格式),试试这个


有两种简单的非编程方式:

  • 复制数据,并在目标位置使用“特殊粘贴->转置”
  • 应用
    转置
    工作表功能:选择转置大小的范围(在您的示例中为1行x 4列,并输入
    =转置(A1:A4)
    。您需要将其作为数组公式输入,即按Ctrl-Shift-enter键
  • 如果出于某种原因需要通过代码执行此操作,此VBA代码将执行以下操作:

    Sub CopyTransposed(rngSource As Range, rngTargetCell As Range)
        rngTargetCell.Resize(rngSource.Columns.Count, rngSource.Rows.Count).Value = _
            Application.WorksheetFunction.Transpose(rngSource)
    End Sub
    
    您可以简单地这样称呼它:

    CopyTransposed [A1:A4], [C1] 
    
    或者更明确一点

    CopyTransposed Sheets("SourceSheet").Range("A1:A4"),Sheets("TargetSheet").Range("C1")
    

    Ctrl+C使用“特殊粘贴”进行复制和粘贴。单击对话框上的“转置”


    这会将其粘贴为值,但是……

    您可以使用右键单击菜单复制并进行特殊转置,或者您需要在VBA中执行此操作吗?
    CopyTransposed Sheets("SourceSheet").Range("A1:A4"),Sheets("TargetSheet").Range("C1")