2017-06-02 10 views
0

コードを使用して行をコピーし、その下の空白行に値を貼り付けようとしています。例えば:私は手動で数字や文字を入力するとき、私はエクセル上でそれを自分自身をしようとすると、上記の行を空白行にコピーする

Sub Copy() 
    Selection.SpecialCells(xlCellTypeBlanks).Select 
    Selection.FormulaR1C1 = "=R[-1]c" 
End Sub 

これは良い作品:

1 ----> 1 
     1 
2  2 
3  3 
     3 
4  4 

しかし、私はこのコードを適用するとき。私は、クライアントのExcelシート上でこれを実行しようとする。しかし、私は(私は任意の数字としてその行を表現するつもりです)以下の取得:

1 ----> 1 
     R[-1]c 
2  2 
3  3 
     R[-1]c 
4  4 

は、誰かが素晴らしい作品のコードをすでに掲載しているが、私は」なぜ私のコードが私が望むように動作していないのか不思議です。

ありがとうございました。

+0

クライアントワークシートのR [-1] cの前に等号が表示されていますか?細胞がテキストとして成型されている可能性があります。 –

+0

はい等号もあります。あなたは正しいのですが、それはテキスト形式で書かれていて、一般的なものに変更したときにはうまくいきました。しかし、それはどのようにテキスト上で動作しませんか? – Microsoftnoob

+0

テキストとして書式を設定しているときにexcelが言っているように、「書式セルは数値がセル内にあってもテキストとして扱われ、セルは入力と同じように表示されます。 –

答えて

0

コメントに記載されているように、セルはテキストとして書式設定されているため、セルの内容は入力されたとおりに表示されます。この場合 '= R [-1] c'

0

コードが機能しないのは、コードで使用した選択です。

コードは、選択範囲内の空白のセルを見つけようとします。選択に空白のセルが含まれていないと、コードでエラーが発生します。

あなたはその式を適用する列と列Aを交換し

Sub Copy() 
On Error Resume Next 
Columns("A").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]c" 
End Sub 

...このような何かをしようとします。

関連する問題