我知道很多讨论已经解决了这个问题,但我还没有找到解决方案。 我经常制作包含约100条文本和日期字段记录的工作表,每个字段必须转换为2列表格并打印成PDF文件。
为此,我一直在使用VBA代码,它通过工作表行顺序执行:在单独的工作表(模板)中复制/转置为两列,然后使用rng.ExportAsFixedFormat类型:= 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 *单词 - 基于初始计算。
有什么想法吗?
答案 0 :(得分:0)
我使用的方法类似于您建议的最后一段,但字符数而不是字数。 VBA功能是:
len(range("A1").value)
我做了它,因为我合并了单元格并且它们不会自动进行。
你必须校准你的列宽,字体和字体大小,但是根据我所学到的,没有确切的方法。如果您将每行的字符数设置得太高,可能会切断一条线,太低而且您可能会得到一个空行。