excel - 根据 excel 中 sheet1 中的行数在 sheet2 中创建列

标签 excel vba

我想根据 excel 中 sheet1 中的行数在 sheet2 中创建列。
例如
我在 sheet1 中有数据

ROW1:rowvalue1
ROW2:rowvalue2
ROW3:rowvalue3

我想把它放在 sheet2 中
column1       column2      column3
rowvalue1     rowvalue2    rowvalue3

最佳答案

使用复制和粘贴特殊的“转置” - 您可以手动执行此操作。

如果你想使用 VBA:

Sub Macro1()

    Sheets(1).Activate 'open the first sheet
    Sheets(1).Range("A1:A" & Sheets(1).Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row).Select  'select all values in column
    Selection.Copy
    Sheets(2).Select
    ActiveSheet.Range("A1").Select   'this is where your data will be pasted
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True  'transpose=true flips your data around

End Sub

其中 sheet(1) 指第一个工作表,而 sheet(2) 指第二个工作表,您可以将它们替换为工作表的索引或名称(如果您使用名称,请在其周围使用引号),我假设您的数据从A1开始,代码:
    Sheets(1).Range("A1:A" & Sheets(1).Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row).Select

选择该列中最后一个单元格的所有数据。

要在多列上进行这项工作,如果它们都在一行中,您可以转置整个 block 。例如:
子宏1()
    Sheets(1).Activate 'open the first sheet
    Sheets(1).Range("A1:X" & Sheets(1).Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row).Select  'select all values in column
    Selection.Copy
    Sheets(2).Select
    ActiveSheet.Range("A1").Select   'this is where your data will be pasted
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True  'transpose=true flips your data around

End Sub

如果您只想做一些列行,那么您需要在原始代码上创建一个循环。
Sub Macro1()
    y = Array(1, 3, 5, 9) 'this is the index of columns A,C,E,F
    For x = 0 To 3
    Sheets(1).Activate 'open the first sheet
    RowCount = Sheets(1).Range(Cells(ActiveSheet.Rows.Count, y(x)).End(xlUp), Cells(ActiveSheet.Rows.Count, y(x)).End(xlUp)).Row
    Sheets(1).Range(Cells(1, y(x)), Cells(RowCount, y(x))).Select 'select all values in column
    Selection.Copy
    Sheets(2).Activate
    ActiveSheet.Range(Cells(x + 1, 1), Cells(x + 1, 1)).Select 'this is where your data will be pasted
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True  'transpose=true flips your data around
Next
End Sub

关于excel - 根据 excel 中 sheet1 中的行数在 sheet2 中创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008727/

相关文章:

vba - 将图片从 excel 粘贴到适合布局的 powerpoint

excel - VBA Excel 错误处理 - 特别是在函数中 - 专业 Excel 开发风格

excel - 如何使用 VBA 获取当前年份

excel - 如何从 Excel 中的外接程序引用调用外接程序的工作簿?

vba - 第一个 VBA 代码 : Run-time Error "1004"

VBA Excel,输入框作为整数不匹配

excel - 为什么当我对 vba 使用相同的代码、相同的数据但不同的笔记本电脑时得到不同的输出?

c# - 从 CSV 文件外部创建 excel 图表

excel - 如何在 if 语句内使用多个 isblank 语句

java - XSLT 检查字符串是否在集合内