数字格式问题
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])"
我有以下代码:
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])"