2017-06-02 43 views
0

我想要使用代码复制行并将值粘贴在它们下面的空行中。例如:当我自己试试吧Excel的,当我手动输入数字或文字应对以上行到空行以下

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

您的代码无法正常工作的原因是您在代码中使用的选择。

代码将尝试在选择中查找空白单元格,如果选择不包含任何空白单元格,则代码将产生错误。

你可以试试这样的事情...

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

与要应用该公式栏中将A列。

相关问题