我在一个工作表中有一个货币值列表,例如$ 4,250.00,我希望与等效的文本/字符串进行比较;例如另一份工作表中的“4,250美元”。当我在InStr比较之前将货币值转换为文本时,我丢失了“$”和“,”,导致“4250”,这使得比较为假。有没有办法将货币值转换为文本而不会丢失格式?
由于
答案 0 :(得分:2)
可以使用public int[] MyNumberMethod(object a, object b)
{
if (a is int || a is uint || a is short || a is ushort || a is long || a is ulong || a is byte || a is sbyte || a is float || a is double || a is decimal)
{
if (b is int || b is uint || b is short || b is ushort || b is long || b is ulong || b is byte || b is sbyte || b is float || b is double || b is decimal)
return new int[] { Convert.ToInt32(b), Convert.ToInt32(a) };
}
return new int[] { 0, 0 };
}
将数值格式化为VBA中的货币,例如Format(value, "Currency")
。
此外,Format(Range("A1").Value, "Currency")
属性将返回格式化字符串,因此如果单元格A1包含4250并且格式为标准货币格式,则.Text
会为您提供一个Range("A1").Text
字符串。< / p>
在Excel中,我建议使用$4,250.00
等公式。