在使用VBA把很多个Excel文件合并到一个Excel文件的时候(合并后最多的时候有1000页左右),合并后生成的Excel文件打不开,提示是单元格的格式太多,无法加载,原因是在Excel2003里面每个Excel文件的单元格的格式最多可以有4000个,超过这个数字就有问题,一般来讲是不会超过4000个的。     在VBA中把多个文件合并到一个文件的时候我只是做了简单的sheet拷贝(Worksheets("Sheet1").Copy After:=Worksheets("Sheet3") ,没有做别的处理。
现在想到的半法是能不能把重复的格式去掉,但是不知道有没有什么好的办法可以达到这样的目的,或者大家有更好的办法解决这问题更好。想问问各位高手有没有碰到这样的问题,有没有什么好的解决方法,小弟先谢谢各位了!

解决方案 »

  1.   

    建议将数据装入数组再写入新表,即去除格式只保留数据,避免这种问题,如:Arr = Worksheets("Sheet1").UsedRange
    Sheets.AddNew After:=Sheets("Sheet3")
    ActiveSheet.[A1].Resize(UBound(arr),UBound(Arr,2)) = Arr
      

  2.   

    一个EXCEL WORKBOOK中有1000个SHEET。疯掉了。想知道为什么要把1000个表放在一起,从根源上找方法更好吧。如果只是单纯的数据,只保留数据还行,要是报表类的,格式没了更乱。
      

  3.   

    不是有的不使用格式,我的意思是说,让有相同各式的单元格使用同一个格式,这样就可以减少很多的各式了,以前POI的时候就是这么做的
      

  4.   

    谢谢各位,问题解决了,Excel中的4000个格式是很难会达到极限的,后来才发现是我读取的模板有问题,后来修改了模板就好了,一般新建的Excel文件里面应该是有6个格式,结贴给分