Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel,更改日期格式,然后使列中的所有单元格都以新的方式显示_Excel_Date_Format - Fatal编程技术网

Excel,更改日期格式,然后使列中的所有单元格都以新的方式显示

Excel,更改日期格式,然后使列中的所有单元格都以新的方式显示,excel,date,format,Excel,Date,Format,我有一个文件,其中日期列的格式是我无法进行计算的格式,因此我将该列更改为另一种可以减去日期的格式。不过,与excel通常发生的情况一样,只有双击某个条目时,它才会更改为新格式 有人知道我如何强制列中的所有单元格更改为新格式,以便我的脚本能够减去整个文件的日期吗?如果您只想通过VBA执行此操作,您可以使用以下方法: Range("C1:C100").NumberFormat = Range("B2").NumberFormat 上面的示例只是将单元格C1-C100的格式更改为B2中的任何格式 更

我有一个文件,其中日期列的格式是我无法进行计算的格式,因此我将该列更改为另一种可以减去日期的格式。不过,与excel通常发生的情况一样,只有双击某个条目时,它才会更改为新格式


有人知道我如何强制列中的所有单元格更改为新格式,以便我的脚本能够减去整个文件的日期吗?

如果您只想通过VBA执行此操作,您可以使用以下方法:

Range("C1:C100").NumberFormat = Range("B2").NumberFormat
上面的示例只是将单元格C1-C100的格式更改为B2中的任何格式

更新: 我注意到你说格式很好,但我认为是。这种情况通常发生在列不够宽,无法显示整个值时,因此手动调整其大小或使用类似belwo的方法应该可以解决您的问题:

Columns("C:C").EntireColumn.AutoFit

您可能还希望在相邻列中尝试
=Datevalue()
。我在这种情况下的经验是Excel不理解您的条目是日期。它们是文本,仅在格式更改时不会更改。或者,您可以尝试将文本转换为列来进行转换。

在vbScript中尝试此操作

objExcel.Cells(Row, Column).NumberFormat = "#0.00"

下面是一个非常简单的解决方法:

  • 插入一个空白列

  • < L> > P>将空白列的格式更改为所需的日期格式。
  • 复制包含无法格式化日期的列

  • > P>右键单击空白的第一个单元格,格式化列,选择粘贴特殊,选择粘贴:值和操作:添加。(因为目标单元格为空,所以日期将保持不变。)单击“确定”

  • 这些日期现在将显示为日期


  • 这是一次性的事情,只是为了让我当前的脚本运行,所以我会使用这个画笔工具。尽管如此,我无法在我的excel(Mac2011)中找到它。你能确切地告诉我在哪里能找到它吗?尽管如此,它似乎不起作用。我相信这是因为所有单元格都设置了正确的格式,但只有双击它们,它们的外观才会改变。我用VBA解决方案更新了我的答案。我已经测试过了,当你调用它时,它会更新范围内的所有单元格。这段代码确实改变了格式,但我发现这毕竟不是我的问题。所有单元格都已具有正确的格式,但它们不会按照此格式显示!!当数字或日期显示为###########时,这是一个常见问题,您必须双击它们才能看到实际值。通常,当列太窄而无法显示值的全长时,会显示####。您可以添加类似“Columns(“C:C”).entireclumn.AutoFit”的soemthing,这可能会起到作用