• Range.get_Offset(rows,cols), Range若为合并单元格,那么get_Offset并不如我们想像的以Range的左上角单元格为基点计算,比如,如果Range为A7:B7合并,则Range.get_Offset(1,0)为正常为A8,而Range.get_Offset(1,1)为C8,并不是B8。因此原点单元格最好使用非合并单元格。
  • 合并单元格的AutoFit功能无法正确计算行高,独立单元格则正常。网上有一段VBA的代码可以勉强做单行合并单元格的AutoFit,但它还不能照顾EntireRow,因此只能扩展行高,而不敢收缩,既然如此,我倒是建议先选择将要合并的单元格中的某个,将其宽度扩展到合并以后的宽度,填充内容后再将其宽度收缩到原值,最后再Merge:
    Excel合并单元格基础注意事项(VSTO 2005)double w0 = (double)originRng.ColumnWidth;
    Excel合并单元格基础注意事项(VSTO 2005)
    double w1 = (double)originRng.Next.ColumnWidth;
    Excel合并单元格基础注意事项(VSTO 2005)rng 
    = originRng.get_Offset(r, 0);
    Excel合并单元格基础注意事项(VSTO 2005)rng.WrapText 
    = true;
    Excel合并单元格基础注意事项(VSTO 2005)rng.Value2 
    = "line1\r\nline2\r\nlineExcel合并单元格基础注意事项(VSTO 2005)";
    Excel合并单元格基础注意事项(VSTO 2005)rng 
    = worksheet1.get_Range(originRng.get_Offset(r, 0), originRng.get_Offset(r, 1));
    Excel合并单元格基础注意事项(VSTO 2005)rng.Merge(
    false);
    Excel合并单元格基础注意事项(VSTO 2005)originRng.ColumnWidth 
    = w0;
    Excel合并单元格基础注意事项(VSTO 2005)

    注意,以上代码运行后不能再使用“最适合的行高”功能,相应的在程序中也就是不能使用AutoFit()方法,否则行高又将混乱。

相关文章:

  • 2021-10-30
  • 2021-06-18
  • 2022-01-05
  • 2021-06-16
  • 2022-02-06
  • 2022-01-24
猜你喜欢
  • 2022-02-12
  • 2021-09-27
  • 2021-09-27
  • 2021-12-29
相关资源
相似解决方案