首页 文章

AutoFit不在Excel 2007中调整VBA代码中的行高

提问于
浏览
1

我知道很多讨论已经解决了这个问题,但我还没有找到解决方案 . 我定期生成包含约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”) . 行(“1:18”) . Selection.EntireRow.AutoFit

不幸的是,这似乎并没有复制我们成功尝试的手动单元扩展 . 没有合并的单元格 . 所有都是包装和一般格式化 . 我尝试在输入之前通过记事本清理文本条目并使用Alt-F插入空白行(如其他地方所建议) .

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

有什么想法吗?

1 回答

  • 0

    我使用的方法类似于你建议的最后一段,但字符数而不是字数 . VBA功能是:

    len(range("A1").value)
    

    我做了它,因为我合并了单元格,他们不会自动调整 .

    你必须校准你的列宽,字体和字体大小,但从我所学到的那里,没有确切的方法 . 如果您将每个线条的字符数设置得太高,可能会切断一条线,太低而且您可能会得到一个空行 .

相关问题