プロが教える店舗&オフィスのセキュリティ対策術

sh2のA~Hをコピーして、同じ書式のsh1に挿入しようと思いますが、結合セルが解除されてうまくいきません。
手動でセルの挿入をすると、結合セルを保持したまま挿入できますが、マクロを使うとダメなのでしょうか。
良い方法があれば教えていただきたいです。

maxrow = sh2.Cells(Rows.Count, "C").End(xlUp).Row
For row2 = 5 To maxrow
sh2.Range("A" & row2 & ":H" & row2).Copy
sh1.Range("A" & row1 & ":H" & row1).Insert shift:=xlDown
row1 = row1 + 1

A 回答 (4件)

こんにちは #2です


>手動でセルの挿入をすると、結合セルを保持したまま挿入できますが
これを信じましたが、
>同じ書式と言いましたが、sh1とsh2で微妙に違いがあるため
との事なので 
行挿入で書式は引き継がれると思いますので
①最初に空の行を挿入する
②その行の各列に必要な値を入れる
結合セルに表示できる値は、1つなので、こんな方法で良いと思います。
(ループは下から)

コピー元の行にあるどのセルがコピー先のどのセルの値になるのか
結合セルで一致しないとの事なので、現状、ご質問者にしか分かりませんね。(範囲は同じでも値の数は一致しないかも知れませんしね)
    • good
    • 0
この回答へのお礼

手動では、sh2の形式のままで挿入できるのです。
しかし、コピーして、Insert shift:=xlDown で挿入すると、セルが分割されてしまうのです。
行挿入で書式は引き継がれると思うので、挿入しているのですが…。
もう少し考えてみます。
ありがとうございました。

お礼日時:2021/11/25 21:24

No.1の者です。



>sh1とsh2で微妙に違いがあるため、コピー&ペーストでもうまくいきませんでした。
>行単位で挿入しても、結果は同じで、うまくいきませんでした。
→どの様に、うまくできなかったのでしょうか?

手作業では、うまくいくのでしょうか? うまくいくなら、マクロの記録で
出来上がったコードを参考にしては?と思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
行単位で挿入したところ、セルが分割されてしまいました。
手動ではうまくいくので、もうちょっと考えてみます。

お礼日時:2021/11/25 21:15

こんばんは


結合範囲が解らないので何とも言えませんが、
行単位で挿入して良いなら、行単位でコピー行を挿入すれば良いかな?
For row2 = 5 To maxrow
sh2..Rows(row2).Copy
sh1.Rows(row1).Insert shift:=xlDown
row1 = row1 + 1
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも、やっぱり、行単位で挿入しても、結果は同じで、うまくいきませんでした。

お礼日時:2021/11/23 20:34

こんばんは。



直接の解決策ではありませんが、取り合えず、下記はどうでしょうか?
実際に試していませんが、結合セルが解除されるが、行の挿入は可能だと
いう事だと思いますので、もう一度、今度はそのまま貼り付けされては?
と思いました。

maxrow = sh2.Cells(Rows.Count, "C").End(xlUp).Row
For row2 = 5 To maxrow
sh2.Range("A" & row2 & ":H" & row2).Copy
with sh1.Range("A" & row1 & ":H" & row1)
.Insert shift:=xlDown
.select
End with
ActiveSheet.Paste
row1 = row1 + 1
    • good
    • 0
この回答へのお礼

すいません。
同じ書式と言いましたが、sh1とsh2で微妙に違いがあるため、コピー&ペーストでもうまくいきませんでした。

お礼日時:2021/11/23 20:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A