|
はじめまして。会社の日常業務効率化のために
エクセルVBAと悪戦苦闘している、初心者です。
参考書等を見ながら、がんばっているのですが、
どうしても行き詰ってしまい、思い切って質問投稿しました。
どなたか、ご指南いただけないでしょうか?
※質問の要点
(空白セルを詰めてコピーする方法)
:問題点・・関数式で得られた「空白セル」は空白ではないのか?:
:参考例:
注:A列の式はそのままE列まで行固定で入っています。
A1行セル範囲(A1:E1)の値(1,2,0,3,4)←計算式で得られているとする。
A2行セル範囲(A2:E2)の値(1,2, ,3,4)←関数=IF(A1=0,"",A1)で得られた値
上二つの行から、
セル範囲(A4:E4)の値を(1,2,3,4, )となるようにコピーしたいのですが、
:A2行・・IF関数が入力されているために、一旦、
:A3行にVBAで値のみをコピーする。
その結果
A3行セル範囲(A3:E3)の値(1,2, ,3,4)←値のみを貼り付けて得られた値
A3行をコピーし、それを基にSpecialCells(Type:=xlCellTypeConstants)で
試行しましたが、結果は
A4行セル範囲(A3:E3)の値(1,2, ,3,4)となり、
スッテプインにて調べた結果、
選択範囲A3行が (A1:A2)(A4:A5)とならずに、
(A1:A5)のままでした。
※VBA記述は、以下の通りです。
Range("A2:E2").Copy
Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False
Dim rg As Range
Set rg = Range("A3:E3")
Set rg = rg.SpecialCells(Type:=xlCellTypeConstants)
rg.Copy
Range("A4").PasteSpecial
End Select
どうか、よろしくお願いいたします。
記述が下手ですみません。
|
|