2013-04-24 124 views
0

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

这里是我遇到的问题的一个例子:
enter image description here

另一个例子是在一些小数位数:如果我的宏复制/粘贴与11位小数的数字,Excel是刚会保持7!很烦人!

+1

使用cstr函数将分割转换为字符串。 – Santosh 2013-04-24 04:01:28

回答

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 
0

一种技术是保持您的基础数据与格式化数据分开。首先创建基本的数据表,你不关心formmatting。然后用公式来创建演示文稿表格,这些公式可以从基础数据表中获取数据,并将这些演示文稿表格完全锁定。即使Excel无法重新格式化完全锁定的工作表。

0

您使用的是粘贴粘贴特殊

前者相当于PasteSpecial xlPasteAll其中包含格式。

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

+0

感谢您的回答,实际上我只是使用这种表达式:“sMain.Range(”A29“)。Value = Range(rowMax).Offset(0,-8).Value”两个单元格内容之间的等号。 – Phalanx 2013-04-24 08:22:17

+0

也许你可以修改工作表的** Style **以包含你想要的数字格式? – 2013-04-24 08:37:56

相关问题