2015-02-05 31 views
1

我知道很多討論都解決了這個問題,但我還沒有找到解決方案。 我經常製作帶有約100個文本和日期字段記錄的工作表,每個記錄必須轉換成2列表並打印到PDF文件。AutoFit在Excel 2007中無法調整VBA代碼中的行高度

要做到這一點,我一直在使用VBA代碼,它通過工作表行工作,按順序:在單獨的工作表(Template)中複製/轉置爲兩列,然後使用rng.ExportAsFixedFormat類型:= xlTypePDF創建PDF文件。

它已全部工作正常了好幾年,直到最近有人發現,有時最大字段不顯示所有從Excel單元格中的文本。在大約1000至1100個字符後,它總是被切斷。

許多討論提到,有一個1024的限制上單元中顯示,但我認爲這僅適用於Excel 2003和前 - 2007年應該罰款不應該嗎?無論如何,我發現總是可以手動調整Excel字段以顯示所有文本(包括原始工作表和臨時2列Excel表格),有時總計超過2000個字符。當然,我不想定期手動調整和打印PDF 100次。所以我使用AutoFit:表格(「模板」)。行(「1:18」)。Selection.EntireRow.AutoFit

不幸的是,這似乎沒有重複手動單元格擴展,我們已經嘗試成功。沒有任何單元格被合併。所有包裹和通用格式。我已經嘗試通過記事本清理文本條目,並使用Alt-F插入空白行(如其他地方所建議的)。

如果AutoFit不起作用,我想也許我可以包含一些代碼,通過獲取總字數(是否有函數?)並將行高設置爲大約0.8 *數來爲每個表設置自定義行高的話 - 基於最初的計算。

任何想法嗎?

回答

0

我已經使用了一種類似於你建議你最後一段的方法,但用字符數而不是字數。 VBA的功能是:

len(range("A1").value) 

我做了它,因爲我已經合併單元格,他們不會自動調整。

你必須來校準你的列寬,字體和字體大小,但是從我所瞭解到有沒有確切的方法。如果您將每行字符設置得過高,則可能會切斷一行,並且可能會出現空行。