Memory Excel 2007工作簿名称大小限制是多少?为什么?

Memory Excel 2007工作簿名称大小限制是多少?为什么?,memory,excel,vba,Memory,Excel,Vba,Excel2007中的工作簿名称应该仅受内存的限制,但事实似乎并非如此。最终,保存到名称中的数组将变得足够大,当您尝试保存时,您会得到(意译):“此工作簿中的一个或多个公式超过8192个字符的限制,请另存为二进制文件” 好的,然后将其保存为二进制文件格式。。。但即使在这里,数组也可能变得足够大,无法保存文件 有什么好处?发生这种情况时,名称是如何存储在Excel中的?这是安装中特有的吗?有办法绕过它吗 用下面的代码自己尝试一下。它将完美地运行,并且名称将被正确填充,但是保存会给您带来一些严重的错

Excel2007中的工作簿名称应该仅受内存的限制,但事实似乎并非如此。最终,保存到名称中的数组将变得足够大,当您尝试保存时,您会得到(意译):“此工作簿中的一个或多个公式超过8192个字符的限制,请另存为二进制文件”

好的,然后将其保存为二进制文件格式。。。但即使在这里,数组也可能变得足够大,无法保存文件

有什么好处?发生这种情况时,名称是如何存储在Excel中的?这是安装中特有的吗?有办法绕过它吗

用下面的代码自己尝试一下。它将完美地运行,并且名称将被正确填充,但是保存会给您带来一些严重的错误。3351元素太多,但3350保存得很好:

Public Sub TestNameLimits()
    Dim v As Variant
    ReDim v(1)

    Dim index As Integer

    For index = 1 To 3351
        ReDim Preserve v(index)
        v(index) = "AAAA"
    Next

    Call Application.Names.Add("NameLimit", v)

End Sub

名称集合是Excel的一项功能,已经存在很长时间了。Excel 2003中的公式长度限制为1024(2^10),但Excel 2007将其扩展为8192(2^13)

这两篇文章介绍了Excel 2003和Excel 2007的主要大小限制:

为了解决这个问题,我想看看这个收藏。我认为worker.CustomProperties项目的大小仅受内存的限制。您必须在您的系统上进行测试,可能还需要在各种版本的Excel中进行测试,但我认为您应该能够轻松地保存超过10000000个字符


但是,在使用“工作表.CustomProperties”集合时,您将负责自己将数组与字符串进行转换,而“名称”集合可以自动将数组转换为字符串。

这些链接已断开,您知道正确的新链接是什么吗?