我为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
答案 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