VBA Resizeで貼り付け(空白の場合) 前回はありがとうございました。 実は聞き忘れたことがありまして。 前回は

画像

Visual Basic | Excel47閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

ID非公開

2021/5/8 8:25

ThanksImg質問者からのお礼コメント

ありがとうございました。 シンプルでわかりやすかったです。

お礼日時:5/9 10:05

その他の回答(2件)

0

画像では、A B C の間隔が3行で統一されています。決まっていないのなら、画像も不規則にして下さい。でないとミスリードになります。   A'B'C'の' を外し、 A列と1行目の表示方法を統一すれば関数でできます。 F2: =OFFSET($B1,MATCH(LOOKUP("ー",$F$1:F$1),$A:$A,0)-1,MOD(COLUMN(),3)) セルの書式設定、ユーザー定義「#」  (0を出なくします) 右下へコピペ。 VBA なら Option Explicit ' Sub Macro1()     Dim RInp As Long     Dim Colu As Integer '     RInp = 1 '     Do While Cells(RInp, "A") > ""         [F2:G4].Offset(, Colu) = [B1:C3].Offset(RInp - 1).Value         RInp = Cells(RInp, "A").End(xlDown).Row         Colu = Colu + 3     Loop End Sub 数の制限はなく、D E …があれば、更に横にコピペされます。

画像
0

ID非公開

2021/5/8 8:38

それぞれ3行2列のデータと決まっているなら Dim i As Integer For i = 1 To 3 Cells(2, i * 3 + 3).Resize(3, 2).Value = Cells(i * 6 - 5, 2).Resize(3, 2).Value Next i これだけでいいと思います。 前の質問が関連している時は、その質問のURLを載せるようにして下さい。 他IDの質問は見る事が出来ませんので、探すのが大変でした。

ありがとうございました。この前は大変失礼いたしました。 AとBとの距離やBとCとの距離は本当は決まってないのです(バラバラです)。 なので、Offset(3, 0).End(xlDown)を使わないと、と思いました。 生意気で申し訳ございません。