我有以下 Excel 工作表:
A
1 foo
2 bar
3 baz
4 bam
(实际上,该专栏使手动转调不再是一种选择)。我怎样才能把这张表转换成
A B C D
1 foo bar baz bam
我已经尝试过数据透视表功能,但无法获得我想要的输出。我还可以编写一个(php)脚本来读取和转换 Excel,但我无法想象这是在 Excel 中不容易完成的事情。但是,我一直无法找到这个问题的答案。你能帮我吗?
有两种简单的非编程方式:
TRANSPOSE
工作表功能:选择转置大小的范围(在您的示例中为 1 行 x 4 列并输入=TRANSPOSE(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")
如果您只需要转置数据,(即没有格式)试试这个
Sub zx()
Dim rng As Range
Dim dat As Variant
With ActiveSheet ' can be any sheet
Set rng = .[A1:A5] ' get refernce to your data, by any means
dat = rng ' copy data to array
rng.Clear ' clear old data
' paste transposed data
.Range(rng.Cells(1, 1), Cells(rng.Row, rng.Rows.Count)) = Application.Transpose(dat)
End With
End Sub
Ctrl+C 使用选择性粘贴进行复制和粘贴。单击对话框上的转置。
不过,这会将其粘贴为值....