簡體   English   中英

如何從Excel中的VBA函數返回長字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM