1

Excelのシート1の行数に応じて、シート2に列を作成したい。たとえば、シート1にデータがあります

ROW1:rowvalue1
ROW2:rowvalue2
ROW3:rowvalue3

私はそれをsheet2に入れたい

column1       column2      column3
rowvalue1     rowvalue2    rowvalue3
4

2 に答える 2

2

コピー&ペーストの特別な「転置」を使用してください - これは手動で行うことができます。

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) が最初のシートを参照し、sheets(2) が 2 番目のシートを参照する場合、これらをシートのインデックスまたは名前に置き換えることができます (名前を使用する場合は、その周りに逆コンマを使用します)。 A1 で始まるコード:

    Sheets(1).Range("A1:A" & Sheets(1).Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row).Select

その列の最後のセルまでのすべてのデータを選択します。

複数の列でこれを機能させるには、それらがすべて行にある場合、ブロック全体を転置するだけです。例: Sub Macro1()

    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
于 2013-08-02T04:47:30.187 に答える