我对excel有一个非常讨厌的问题:我有一些VBA宏,其目的是用一些内容填充其他一些单元格。我的问题是excel不断改变某些单元格的格式!谢谢,但我没有要求这个,每次它试图帮助我,它只是让事情变得更糟 当我右键单击单元格以设置标准格式然后再次尝试我的宏...它会回到excel更改!
以下是我遇到的问题的一个示例:
另一个例子是数字中的小数位数:如果我的宏正在复制/粘贴一个小数为11的数字,那么excel就是保持7!太烦人了!
答案 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 xlPasteValues
或Range.PasteSpecial xlPasteFormulas