【问题标题】:AutoFit not adjusting row height in VBA code in Excel 2007AutoFit 不调整 Excel 2007 中 VBA 代码中的行高
【发布时间】:2015-02-05 16:01:05
【问题描述】:

我知道很多讨论已经解决了这个问题,但我还没有找到解决方案。 我经常制作包含大约 100 条文本和日期字段记录的工作表,每条记录都必须转换为 2 列表并打印为 PDF 文件。

为此,我一直在使用 VBA 代码,该代码通过工作表行按顺序工作:复制/转置到单独工作表(模板)中的两列,然后使用 rng.ExportAsFixedFormat Type:=xlTypePDF 创建 PDF 文件。

几年来一直运行良好,直到最近有人注意到,有时最大的字段不会显示 Excel 单元格中的所有文本。它总是在大约 1000 - 1100 个字符后被切断。

许多讨论提到单元格显示有 1024 个限制,但我认为这仅适用于 Excel 2003 及之前的版本 - 2007 应该没问题,不是吗?无论如何,我发现总是可以手动调整 Excel 字段以显示所有文本(在原始工作表和临时 2 列 Excel 表中),有时总计超过 2000 个字符。当然,我不想定期手动调整并打印到 PDF 100 次。所以我使用了 AutoFit: Sheets("Template").Rows("1:18").Selection.EntireRow.AutoFit

不幸的是,这似乎无法复制我们已成功尝试的手动单元扩展。没有任何单元格被合并。所有内容均已包装并采用常规格式。我已经尝试在输入之前通过记事本清理文本条目并使用 Alt-F 插入空白行(如其他地方所建议的那样)。

如果 AutoFit 不起作用,我想也许我可以包含一些代码,通过获取总字数(是否有函数?)并将行高设置为大约 0.8 * 数量来为每个表设置自定义行高单词 - 基于初始计算。

有什么想法吗?

【问题讨论】:

    标签: excel-2007


    【解决方案1】:

    我使用的方法类似于您在上一段中建议的方法,但使用的是字符数而不是字数。 VBA函数是:

    len(range("A1").value)
    

    我这样做是因为我合并了单元格并且它们不会自动调整。

    您必须校准列宽、字体和字体大小,但据我所知,没有确切的方法。如果您将每行字符数设置得太高,您可能会切断一行,太低,您可能会得到一个空行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多