[英]How to return a long string from a VBA function in Excel?
我在Excel中定義了以下函數:
Function LongString()
Dim i As Integer
Do
LongString = LongString & "X"
i = i + 1
Loop Until i > 40000
End Function
這會導致錯誤: #VALUE!
似乎最大字符串長度限制為32768?
如何使這個工作?
--EDIT--感謝大家的支持。 我的解決方案是將我的函數分成幾個包含少於32768個字符的單元格。
據微軟稱,32767長度限制在他們的規范中(見這里 )。
單元格內容的長度(文本):“32,767個字符。單元格中只顯示1,024個;公式欄中顯示全部32,767個。”
因此,獲得更多信息的唯一方法是將字符串分解為多個單元格。
Excel允許每個單元格超過32 k。 我有一個奇怪的情況,我有一個34743字節的字符串,我處理字符串,但無法返回超過32k。 所以問題在於返回值,而不是單元格的最大大小。
注意Excel 2013,在2003年的限制是32k。 但vba代碼仍然限制在Excel 2013中返回32k.M $罕見的錯誤。
您的LonsString
函數返回一個變量/可變長度字符串,最多可包含2 ^ 31(約20億)個字符。
但是,正如@Jon所提到的,單元格最多只能包含32767個字符。 (將i
的數據類型更改為long
來證明這一點)。
如果你擴展你想要用LongString實現的目標,我們可能會提供一些替代方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.