0

我在使用 excel 时遇到了一个非常烦人的问题:我有一些 VBA 宏,其目的是用一些内容填充其他一些单元格。我的问题是excel不断改变某些单元格的格式!谢谢,但我没有要求这个,每次它试图帮助我时,它只会让事情变得更糟。
当我右键单击单元格以设置标准格式然后再次尝试我的宏时...它会返回到 excel 更改!

这是我遇到的问题的一个示例:
在此处输入图像描述

另一个例子是数字中的小数位数:如果我的宏正在复制/粘贴一个小数点后 11 位的数字,excel 只会保留 7 位!!很烦人!

4

3 回答 3

2

您只能通过将它们传递给字符串变量来复制您的值,例如

dim s as string
s = cstr(myrange.value)
mysecondrange.value = s

如果您的问题仍然存在,则代码的另一部分存在问题。

另一个问题可能是格式化为通用的新单元格,在这种情况下,excel 将始终假定它知道更好地将格式更改为套件。根据您的目标,您可能需要使用相同的 VBA 代码自己设置格式,例如

 mysecondrange.numberformat = "@" 'to text 
 'or
 mysecondrange.numberformat = myrange.numberformat 'to other cells format
于 2013-04-25T08:39:14.040 回答
0

一种技术是将基础数据与格式化数据分开。首先创建您不关心格式的基本数据表。然后使用从基础数据表中提取数据的公式创建演示表,并完全锁定这些演示表。甚至 Excel 也无法重新格式化完全锁定的工作表。

于 2013-04-24T04:03:18.087 回答
0

您使用的是Paste还是PasteSpecial

前者相当于PasteSpecial xlPasteAll包括格式。

也许您的代码可以使用Range.PasteSpecial xlPasteValuesRange.PasteSpecial xlPasteFormulas

于 2013-04-24T08:19:55.217 回答