A3、A4、A5、A6、A7、A8を示すようにA3、B3、C3、A4、B4、C4から新しいシートにデータを移動するにはどうすればいいですか?列から行へのデータの移動(Excel)
基本的に、A3にはタイトルが含まれ、B3には説明が含まれ、C3には値が含まれます。これをリスト形式で表示します。
おかげで、
ロブ
コードの下A3、A4、A5、A6、A7、A8を示すようにA3、B3、C3、A4、B4、C4から新しいシートにデータを移動するにはどうすればいいですか?列から行へのデータの移動(Excel)
基本的に、A3にはタイトルが含まれ、B3には説明が含まれ、C3には値が含まれます。これをリスト形式で表示します。
おかげで、
ロブ
コードの下が、これはあなたが必要なものであるなら、私に知らせて、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
Rows.Countを使用すると、 'y = Sheets(" Sheet1 ")のようにハードコーディングされた65536よりも優れています。範囲(" A "とRows.Count).End(xlUp)。 ' –
こんにちはApurv、私はあなたが上記に書いたことを少し修正しました。数式ではなくコピーされている値を保持するためにコピーで特殊なペーストを行う方法を知っていますか? –
私はあなたの質問が示唆するものよりも複雑であると思います。個人的には、テキストエディタ(例えば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!を取得すると、それはテーブルの終わりを意味します。
こんにちはJerry、その問題は、貼り付けがExcelで適用されているテキスト書式を維持しないということですか?どのようにそれを維持するためのアイデア? –
厳密に言えば、この要件は問題ではありませんでしたが、元の表からリストの最初の3つのセルに「コピー>貼り付け特殊>転置と書式設定」を実行できます。コピーして、残りのセルにリストから貼り付けるだけです。 – Jerry
コピーした後、特殊なペーストオプション「トランスポーズ」 – Jerry
こんにちはジェリーを選択し、細胞がタイトル/説明/データを取得する数式を含むとして実際に動作しないこと。 –
スペシャルを貼り付けるときにも[値]を選択します。 – Jerry