Excel中的Visual Basic 1004错误,方法对象“范围”的“值”失败(Excel vi

2019-10-19 08:28发布

我做了一个小外接为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

Answer 1:

我已经找到了解决办法,调试我发现,逗号是问题,所以我改变逗号点,然后计算。 现在,它的工作原理就像一个魅力。

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

感谢您的建议。



Answer 2:

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


Answer 3:

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

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


文章来源: Excel visual basic 1004 error, method 'value' of object 'range' failed