Excel宏创建公式工作正常。复制和粘贴公式的宏留下了#Values

时间:2017-07-27 16:57:01

标签: excel-vba vba excel

我编写了一个User Defined函数来获取单元格的颜色。

Function GetFillColor(Rng As Range) As Long
    GetFillColor = Rng.Interior.ColorIndex
End Function

功能有效。

我写了一个宏来在电子表格中使用该功能:

    Sub Macro5()

     Macro5 Macro                 
        Windows("KobeCurrent2.xlsm").Activate
        Sheets("Direct").Select
        Range("AP2").Select
        ActiveCell.FormulaR1C1 = "=NUMBERVALUE(GetFillColor(RC[-26]))"
        Range("AP2").Select
        Dim LR As Long
     LR = ActiveSheet.UsedRange.Rows.Count
    Range("AP2").Select
    Range("AP2").AutoFill Destination:=Range("AP2:AP" & LR)

End Sub

细胞AP2显示细胞颜色的值。 列AP中的其余单元格显示#Value! 在我双击#Value!之前,它会更改为单元格颜色的值。

我尝试将单元格乘以1,使用数据文本到列,但是当通过excel宏执行时,我仍然得到#Value!它仍然需要双击才能解决。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

我测试了你的脚本,但我收到了#NAME错误,因此我修改了它以将值放在AP2等中,而不是公式。这可能不是您正在寻找的,但很容易修改。希望这会有所帮助或让你朝着正确的方向前进。

Sub Macro5() ' ' Macro5 Macro '

Dim LR As Long
LR = ActiveSheet.UsedRange.Rows.Count


Windows("KobeCurrent2.xlsm").Activate

For x = 2 To LR Step 1

    Range("AP" & x).Value = Range("A" & x).Interior.ColorIndex

Next x
 ' I left these in here for reference.
 'ActiveCell.FormulaR1C1 = "=GetFillColor(RC[-15])"    
 'Range("P2").AutoFill Destination:=Range("P2:P" & LR)
End Sub