在我的工作中,每天都使用我几年前编写的宏。简而言之,该宏将每日生成的报告中的项目添加到具有某些表的文件中。我用于复制的代码:
.Rows(i).EntireRow.Copy Destination:=wsReq.Range("A1").End(xlDown).Offset(1, 0)
这种方法已经工作了好多年,但是上周突然间,它开始引起一些奇怪的事情。
在上面引用的这一行在运行期间第一次执行后,所有空白单元格的格式都设置为数字格式“ $ ## 0”(美元符号,空格,值,无小数)
源文件的所有内容均为“常规”格式,目标文件的格式为常规或数字(绝对不是货币),但是执行此步骤时,数字显示的格式错误。 现在,即使是10位数字的ID也是如此……
源文件中的 ID:45346345
将其粘贴到目标文件后:$ 45 346 345
更大的问题是,这也是我在空白单元格中使用的格式。假设我的目标表的使用范围为345行。复制粘贴后,从346行开始,一直到最底部,所有单元格(在所有空行中)现在都具有货币格式。即使我删除了从346开始的所有行,也就是复制粘贴后,它们将再次具有相同的货币格式。
我将其范围缩小到了上一行,即发生更改的地方。
之后可以更改格式,我现在在同一个宏中执行此操作,但是我们所讨论的是具有140列列的表,我不想为所有140个单元格添加格式化程序行...
特别是因为它发生在文件的每个工作表上。每张纸上的所有空白单元格都格式化为货币。
就像我说的那样,这才刚刚开始。当我第一次看到此文件时,该文件最后一次由我自己修改,并且我没有做任何可能导致此问题的操作。
解决方案:我花了很长时间和很多挫败感,但终于解决了它。功能区->主页->样式->右键单击“普通”,然后单击“修改”。在那里,更改默认数字格式。可能是其中一种情况,您不小心同时按下了多个键,然后更改了一些设置,之后您才注意到任何东西。