我对excel有一个非常讨厌的问题:我有一些VBA宏,其目的是用一些内容填充其他一些单元格 . 我的问题是excel不断改变某些单元格的格式!谢谢,但我没有要求这个,每次它试图帮助我,它只是让事情变得更糟 .当我右键单击单元格以设置标准格式然后再次尝试我的宏...它会回到excel更改!
以下是我遇到的问题的示例:
另一个例子是数字中的小数位数:如果我的宏正在复制/粘贴一个小数为11的数字,那么excel就是保持7!很烦人!
您只能通过传递字符串变量来复制您的值,例如
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
一种方法是将基础数据与格式化数据分开 . 首先创建基础数据表,而不关心格式化 . 然后使用从基础数据表中获取数据的公式创建演示文稿表,并完全锁定这些演示文稿表 . 即使Excel也无法重新格式化完全锁定的工作表 .
你在用 Paste 或 PasteSpecial .
前者相当于 PasteSpecial xlPasteAll ,其中包括格式 .
PasteSpecial xlPasteAll
也许你的代码可以使用 Range.PasteSpecial xlPasteValues 或 Range.PasteSpecial xlPasteFormulas
Range.PasteSpecial xlPasteValues
Range.PasteSpecial xlPasteFormulas
3 回答
您只能通过传递字符串变量来复制您的值,例如
如果您的问题仍然存在,则代码的另一部分会出现问题 .
另一个问题可能是新格式化为一般格式,在这种情况下,excel将始终假设它知道更好地将格式更改为套件 . 根据您的目标,您可能需要使用相同的VBA代码自行设置格式,例如
一种方法是将基础数据与格式化数据分开 . 首先创建基础数据表,而不关心格式化 . 然后使用从基础数据表中获取数据的公式创建演示文稿表,并完全锁定这些演示文稿表 . 即使Excel也无法重新格式化完全锁定的工作表 .
你在用 Paste 或 PasteSpecial .
前者相当于
PasteSpecial xlPasteAll
,其中包括格式 .也许你的代码可以使用
Range.PasteSpecial xlPasteValues
或Range.PasteSpecial xlPasteFormulas