如果我的单元格内容为文本:THYSS
然后我将该单元格格式化为Time并使用以下内容读取格式名称:
workSheet.Cells [rowNumber,start.Column] .Style.Numberformat.Format
返回字符串“[$ -F400] h:mm:ss \ AM / PM”
在单元格中显示THYSS。
在Fx栏中显示THYSS。
一切似乎都符合预期。
但是,如果我的单元格内容为:1.7063
然后我将该单元格格式化为Time并使用以下内容读取格式名称:
workSheet.Cells [rowNumber,start.Column] .Style.Numberformat.Format
返回字符串“General”
在单元格中显示16:57:04。 在Fx栏01/01/1900 16:57:04显示。
为什么回归将军?!?!?!?!?!?
我只是想确保要导入的电子表格没有任何格式的格式,如果它有格式,那么我需要通知用户更正它,我不能自动删除格式。
P.S。顺便提一下,如果我现在将格式设置为常规,则单元格内容现在神奇地变为1.7062962962963
答案 0 :(得分:0)
这样的话可以解释我的意见
Public Function FormatRange(r As Excel.Range) As Variant
Dim x As Variant
On Error GoTo eHandle:
If r.NumberFormat = "m/d/yyyy" Then
x = CDate(r.Text)
Else
End If
Exit Function
eHandle:
FormatRange = CStr(r.Value)
r.Value = FormatRange
r.NumberFormat = "General"
End Function