保持Excel格式的格式

基本上我想保留Excel单元格的现有格式。 如果我使用ActiveCell.Value2 =“新值”;

ActiveCell显示“新值”但丢失了用户定义的格式(例如红色字体,蓝色背景),所有格式化值都会返回到Excel默认格式值。

注意:如果使用Excelreplace单元格值,则Excel会保留用户的格式。 将此操作logging为macros时,Excel使用属性FormulaR1C1,但是根据MSDN,此属性用于macros。

如果我使用ActiveCell.Value2 =“新值”的ActiveCell显示“新值”,但失去了用户定义的格式

不,它不,我只是testing它(与Excel 2003)。 打开一个新的空白文件,格式化了一些颜色和用户定义的数字格式的列,然后input

ActiveCell.Value2="1" 

在VBA编辑器的直接窗口中。 现有的格式保持不变。 所以,如果你有另一个场景来处理(格式丢失的地方),请详细描述一下。

编辑:如果这种行为真的在VSTO中有所不同,作为一种解决方法,您可以尝试在更改值之前保存ActiveCell的相关格式信息

 fci = ActiveCell.Range.Font.ColorIndex ici = ActiveCell.Range.Interior.ColorIndex pat = ActiveCell.Range.Interior.Pattern nf = ActiveCell.Range.NumberFormat 

然后更改值

 ActiveCell.Value2 = "new value" 

然后再重新分配格式信息

 ActiveCell.Range.Font.ColorIndex = fci ActiveCell.Range.Interior.ColorIndex = ici ActiveCell.Range.Interior.Pattern = pat ActiveCell.Range.NumberFormat = nf 

(但是要小心,这是“空中密码”)。

您可能想要复制单元格,然后“粘贴”格式 – http://www.ozgrid.com/forum/showthread.php?t=56324