我想根据 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/