Excel visual basic 1004错误,对象'range'的方法'value'失败

时间:2014-02-14 22:39:50

标签: excel vba runtime

我为excel添加了一个小插件。 但由于某种原因,它失败了。在重新启动excel之后它工作正常,但是当我将文本复制到excel并尝试运行它时,它会给我错误:运行时'1004',对象'范围'的方法'值'失败。

我想做的是,退出简单。我喜欢建立公式如:(B5 + B6)/ 2而不使用前面的'=',所以Excel不会计算这些表达式。我最终得到了一个大列,在我完成之后,我想用计算选择列的第一个单元格,激活我的加载项,然后在前面放置一个'='并向下循环直到一个空单元格。这样就可以计算出我列中的每个单元格。

我迷路了,你能帮助我吗?

Sub makeFormula()
Do
ActiveCell.Value = "=" & ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop While ActiveCell.Value <> Empty
end Sub

3 个答案:

答案 0 :(得分:2)

我找到了解决方案,通过调试我发现逗号是问题,所以我将逗号更改为点,然后计算。而现在它就像一个魅力。

Sub makeFormula()
Dim Temp As String
Do
    Temp = ActiveCell.Value2
    Temp = Replace(Temp, ",", ".", 1)
    ActiveCell.Formula = "=" & Temp
    ActiveCell.Offset(1, 0).Select
Loop While ActiveCell.Value2 <> Empty
End Sub

感谢您的所有建议。

答案 1 :(得分:0)

Sub makeFormula()
Dim c as range
Set c = selection.cells(1) 'in case >1 cell is selected
do while len(c.value) > 0
    'need to put quotes around the value if not a number
    'c.Formula = "=""" & c.Value & """"
    'use this if the value is a valid formula without =
    c.Formula = "=" & c.Value 
    Set c=c.Offset(1, 0)
Loop
End Sub

答案 2 :(得分:0)

您需要将值传递给临时字符串变量。为我工作:

Sub makeFormula()
    Dim Temp As String
    Do
        Temp = ActiveCell.Value2
        ActiveCell.Formula = "=" & Temp
        ActiveCell.Offset(1, 0).Select
    Loop While ActiveCell.Value2 <> Empty
End Sub