Excel - VBA:一劳永逸地为我的Sheet的所有单元格设置标准格式

时间:2013-04-24 03:57:45

标签: excel vba excel-vba

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

以下是我遇到的问题的一个示例:
enter image description here

另一个例子是数字中的小数位数:如果我的宏正在复制/粘贴一个小数为11的数字,那么excel就是保持7!太烦人了!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

一种方法是将基础数据与格式化数据分开。首先创建基础数据表,而不必关心格式表。然后使用从基础数据表中获取数据的公式创建演示文稿表,并完全锁定这些演示文稿表。即使是Excel也无法重新格式化完全锁定的工作表。

答案 2 :(得分:0)

您使用粘贴粘贴特殊

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

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