2017-10-30 12 views
-1

A3、A4、A5、A6、A7、A8を示すようにA3、B3、C3、A4、B4、C4から新しいシートにデータを移動するにはどうすればいいですか?列から行へのデータの移動(Excel)

基本的に、A3にはタイトルが含まれ、B3には説明が含まれ、C3には値が含まれます。これをリスト形式で表示します。

おかげで、

ロブ

コードの下
+2

コピーした後、特殊なペーストオプション「トランスポーズ」 – Jerry

+0

こんにちはジェリーを選択し、細胞がタイトル/説明/データを取得する数式を含むとして実際に動作しないこと。 –

+2

スペシャルを貼り付けるときにも[値]を選択します。 – Jerry

答えて

1

が、これはあなたが必要なものであるなら、私に知らせて、4つのcolsのためにSheet2のためにシート1からのデータを転置します。

Sub trans() 
Dim x, y As Integer 


x = Sheets("Sheet1").Range("xfd3").End(xlToLeft).Column 
y = Sheets("Sheet1").Range("a65536").End(xlUp).Row 

For j = 1 To y 
    For p = 1 To 4 
    Z = Sheets("Sheet2").Range("A65536").End(xlUp).Row 
     Sheets("Sheet1").Cells(j + 2, p).Copy 
     Sheets("Sheet2").Range("A" & Z + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

     Next p 
    Next j 


End Sub 
+0

Rows.Countを使用すると、 'y = Sheets(" Sheet1 ")のようにハードコーディングされた65536よりも優れています。範囲(" A "とRows.Count).End(xlUp)。 ' –

+0

こんにちはApurv、私はあなたが上記に書いたことを少し修正しました。数式ではなくコピーされている値を保持するためにコピーで特殊なペーストを行う方法を知っていますか? –

2

私はあなたの質問が示唆するものよりも複雑であると思います。個人的には、テキストエディタ(例えばnotepad ++)でコピー/ペーストしてから、タブ文字を改行文字に置き換えてから、それらをExcelにコピー/ペーストします。

それはオプションではない場合、私はいくつかの数学を使用することをお勧めしは、(元のデータがシート1にある):

=INDEX(Sheet1!$A$3:$C$4,INT((ROW()-1)/3)+1,MOD(ROW()-1,3)+1) 

変更Sheet1!$A$3:$C$4適切。 #REF!を取得すると、それはテーブルの終わりを意味します。

enter image description here

+0

こんにちはJerry、その問題は、貼り付けがExcelで適用されているテキスト書式を維持しないということですか?どのようにそれを維持するためのアイデア? –

+0

厳密に言えば、この要件は問題ではありませんでしたが、元の表からリストの最初の3つのセルに「コピー>貼り付け特殊>転置と書式設定」を実行できます。コピーして、残りのセルにリストから貼り付けるだけです。 – Jerry

関連する問題