如何在2个excel工作簿之间复制并在文本框中显示时,如何维护单元格值的格式

时间:2017-11-21 20:09:13

标签: excel vb.net

'在事件上单击该代码从某些工作簿复制值,并在某些文本框中显示该数据 '问题是时间格式,它可以在文本框中显示 例如,在excel Cell.value中,时间是09:26 =>文本框是0,34615。

{{1}}

1 个答案:

答案 0 :(得分:0)

Excel将时间值存储为24小时的一小部分。

你的例子:

  

09:26 =>文本框是0,34615

没有意义。 “上午9:26”应由“0,39305555555555555”表示或时间应为“上午8:18:27”。也许你复制了不正确的值?

在任何情况下,您都可以使用以下技术将Excel时间值转换为格式化的.Net String

Dim rng as Excel.Range = 'your worksheet cell"
TextBox1.Text = DateTime.FromOADate(CDbl(rng.Value2)).ToString("t")

您应该在代码中启用“Option Strict”并实现正确的类型转换,而不是依靠编译器来猜测您的意图。

通常不需要手动释放COM对象,这是我推断您要尝试的releaseObject方法。 .Net没有被打破,只要你没有阻止这样做就能清理。如果需要确定性释放COM对象,可以按照此answer中的模式进行操作。

有关COM版本问题的详细说明,请参阅:https://stackoverflow.com/a/25135685/2592875