Excel 2007 中的工作簿名称的大小应该仅受内存限制,但事实似乎并非如此。最终,保存到某个名称的数组将变得足够大,以至于当您尝试保存时,您会得到(解释):“此工作簿中的一个或多个公式大于 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 中的公式长度限制为 1,024 (2^10),但在 Excel 2007 中已扩展到 8,192 (2^13)。
这两篇文章介绍了 Excel 2003 和 Excel 2007 的主要大小限制:
Excel 2003 规范和限制 http://office.microsoft.com/en-us/excel/HP051992911033.aspx
Excel 2007 规范和限制 http://office.microsoft.com/en-us/excel/HP100738491033.aspx
为了解决这个问题,我会看看Excel.工作表.自定义属性 http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.customproperties(VS.80).aspx收藏。我相信 Worksheet.CustomProperties 项目大小仅受内存限制。您必须在您的系统上进行测试,可能还需要在不同版本的 Excel 中进行测试,但我认为您应该能够轻松保存超过 10,000,000 个字符。
但是,在使用 Worksheet.CustomProperties 集合时,您将负责自己将数组与字符串相互转换,这与 Names 集合不同,Names 集合可以自动将数组转换为字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)