我正在努力解决当我尝试使用NumberFormat将格式更改为单元格时出现的问题......
单元格包含类似“00:00:23,45”的文本,格式为文本。我将其格式更改为“ss.00; @”。 当我在excell中选择单元格时,我看到格式已更改为自定义(并且在菜单中格式正确),但文本仍为“00:00:23,45”,直到我双击单元格并且按回车(然后他应用正确的格式)。我附上了代码:
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").value = "00:00:23,45"
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").NumberFormat = "ss.00;@"
我应该看到“23,45”
P.S。我已经尝试了Questa_cartella_di_lavoro.Sheets("Foglio1").calculate
提前感谢您的帮助,
洛伦佐组成罗马。
答案 0 :(得分:0)
您正在单元格中放置文字字符串。更改该单元格的NumberFormat
不会影响文本字符串的显示。
它会影响单元格中数字的显示。
答案 1 :(得分:0)
听起来单元格值被识别为文本,在这种情况下,您的格式化将无效。
在使用变量将其放入单元格之前,尝试将其存储为日期。
Dim cellValue As Date
cellValue = CDate("00:00:23,45")
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").Value = cellValue
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").NumberFormat = "ss.00;@"
修改强>
我在测试时遇到CDate
行的类型不匹配错误 - 由于某种原因,它无法将文本解析为Date
。这对我有用:
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").NumberFormat = "ss.00;@"
Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").Value = Questa_cartella_di_lavoro.Sheets("Foglio1").Range("F14").Value
首先设置单元格格式,然后重新输入Excel转换为具有新单元格格式的正确数据类型的现有值。
答案 2 :(得分:0)
这对我有用:
Range("A1:A2").NumberFormat = "@" ' Text format
Range("A1") = Replace("00:00:23,45", ",", ".") ' "00:00:23.45"
Range("A2").NumberFormat = "ss.00;@"
Range("A2") = Replace("00:00:23,45", ",", ".") ' "23.45"
但如果,
是您当地的小数点分隔符,则可能是:
Range("A2").NumberFormat = "ss.00;@"
Range("A2").FormulaLocal = "00:00:23,45"
或
Range("A2").NumberFormat = "ss.00;@"
Range("A2") = "00:00:23,45"
Range("A2").Replace ",", "."