数字格式问题

Trouble with number formats

我有以下代码:

Dim tarifa As Double
tarifa = Sheets("OD Tarifa").Cells(fila, 5 + r).value
Cells(j, r + 10).FormulaR1C1 = _
                "=" & tarifa & "-" & "SUMIF(C[-6],RC[-6],C[-3])+SUMIF(C[-6],RC[-6],C[-2])+SUMIF(C[-6],RC[-6],C[-1])"

其中 tarifa 使用逗号作为小数点分隔符(例如 1,5)保存,因此当 VBA 尝试编写公式时,它会抛出错误。例如,如果我手动将 tarifa 替换为 1.5,则不会出现错误。我能做些什么来解决这个问题?

如果在 Excel 2013 年或之后,请尝试使用 NUMBERVALUE 功能。它允许您在读取的数字中指定小数点和千位分隔符。我认为允许您从逗号小数点分隔符切换到 VBA 想要的句点:

tarifa = worksheetfunction.NumberValue(Sheets("OD Tarifa").Cells(fila, 5 + r).value,",",".")

如果这不适用,您应该可以通过查找和替换来修复它:

tarifa = replace((Sheets("OD Tarifa").Cells(fila, 5 + r).value,",",".")

一种方法是使用 FormulaR1C1Local 而不是 FormulaR1C1:

Dim tarifa As Double
tarifa = Cells(1, 2).Value
Cells(2, 2).FormulaR1C1Local = "=" & tarifa

最后我是怎么解决的:

Dim tarifa As Double
tarifa = Sheets("OD Tarifa").Cells(fila, 5 + r).value
Cells(j, r + 10).FormulaR1C1 = _
                "=""" & CStr(tarifa) & """-" & "SUMIF(C[-6],RC[-6],C[-3])+SUMIF(C[-6],RC[-6],C[-2])+SUMIF(C[-6],RC[-6],C[-1])"