以编程方式(VBA,C#)将数组字符串设置为某个范围时,单元格中字符数的奇怪限制

斯塔斯·伊万诺夫(Stas Ivanov)

我在Excel 2007中遇到了一个问题,该问题与Microsoft支持在此处描述的Excel 2003的已知问题非常相似(“当您以编程方式将较大的数组字符串设置为一个时,可能会收到“运行时错误1004”错误消息Excel 2003中的范围”)。如果运行以下宏,则会重现该问题:

Sub newMacro()

Dim longStr As String
longStr = String(8204, "a")

Dim values(3)

For i = 0 To 2
    values(i) = longStr
Next i

Range("A1:C1").Value = values

End Sub

将数组值分配给范围时,Excel会给出“运行时错误'1004'”错误消息。但是,当字符串长度为8203个字符时,一切正常。

这种情况看起来很奇怪,我因为限制为2007 Ecxel(在“Excel的规范和限制”提到“字,一个单元格可以包含总数”这里)为32767。

附加信息:

  1. 该问题不会在Excel 2010中重现。
  2. 如果不使用数组逐个设置值,则不会出现此问题。但就我而言,它将大大降低我的代码的速度。
  3. 最初,当我通过使用NetOffice库以C#编写的Excel加载项使用Excel时,我注意到了该问题。

有人遇到过这个问题吗?有任何解决方法吗?微软对此案有何评论?我什么都没找到

柯兰

微软似乎也写了一篇有关此问题的知识库文章:MS KB 832136

从文章:

原因:当满足下列条件之一为真时,可能会出现此问题:

  • 在Excel 2007中,VBA数组的长度超过了8,203个字符。

解决方法:

Microsoft建议您不要一次将整个阵列放入工作表中,而应一次从阵列中填充一个工作表。他们在其文章中提供了以下示例代码,以建议如何执行此操作:

Sub PopulateRangeWithArray()
    Dim x
    ReDim x(1 To 2, 1 To 2)
    x(1, 1) = String(2000, "a"): x(1, 2) = String(5000, "b")
    x(2, 1) = String(17000, "c"): x(2, 2) = String(33000, "d")
    MsgBox Len(x(1, 1)) & "," & Len(x(1, 2)) _
           & "," & Len(x(2, 1)) & "," & Len(x(2, 2))
    Range("a1").Value = x(1, 1)
    Range("b1").Value = x(1, 2)
    Range("a2").Value = x(2, 1)
    Range("b2").Value = x(2, 2)
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以编程方式(VBA,C#)将数组字符串设置为某个范围时,单元格中字符数的奇怪限制

来自分类Dev

PHPExcel-从数组上载时将单元格设置为字符串

来自分类Dev

将单元格中的字符串转换为行和列范围的数组,以某种方式?

来自分类Dev

数组中的拆分字符串不在单元格范围内 vba

来自分类Dev

将字符串设置为单元格中的值?

来自分类Dev

不允许使用字符串吗?如何将范围的最大限制定义为csv列中的单元格值?

来自分类Dev

用字符串/单元格内容设置范围

来自分类Dev

如何在Apache POI XSSF 4.10中将单元格类型设置为字符串?

来自分类Dev

字符串作为VBA中单元格的函数

来自分类Dev

Matlab中单元格数组的子字符串

来自分类Dev

Matlab中单元格数组的子字符串

来自分类Dev

将新字符串添加到数组时,如何在UICollectionView中创建新单元格

来自分类Dev

在不使用VBA的Excel中拆分字符串(单元格)(例如,用于数组公式)

来自分类Dev

在单元格数组的单元格数组中查找字符串

来自分类Dev

在单元格数组的单元格数组中查找字符串

来自分类Dev

Excel VBA将单元格中的字符串作为带变量的公式求值

来自分类Dev

如何将字符串的单元格数组转换为字符串矩阵?

来自分类Dev

更改单元格数组中许多字符串中的子字符串

来自分类Dev

将字符串与CSV文件中的单元格匹配并返回相邻的单元格

来自分类Dev

在字符串的单元格数组中查找多个字符串的位置

来自分类Dev

将每个单元格中的多个字符串列分解为无序的单个单元格字符串

来自分类Dev

如何使用 VBA 将数组公式作为长度超过 255 个字符的字符串自动输入到 Excel 单元格中?

来自分类Dev

如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型不起作用

来自分类Dev

C ++以编程方式将字符串编码为字符串文字

来自分类Dev

连接字符串的单元格数组将导致无法打印的字符

来自分类Dev

如何将字符串格式的单元格地址与范围一起使用?

来自分类Dev

通过替换或左字符串函数从范围中的单元格中删除子字符串

来自分类Dev

将单元格的内容添加到VBA中的字符串变量中。另外,使用offset在其下方添加单元格

来自分类Dev

Excel Vba获取单元格的值并设置字符串

Related 相关文章

  1. 1

    以编程方式(VBA,C#)将数组字符串设置为某个范围时,单元格中字符数的奇怪限制

  2. 2

    PHPExcel-从数组上载时将单元格设置为字符串

  3. 3

    将单元格中的字符串转换为行和列范围的数组,以某种方式?

  4. 4

    数组中的拆分字符串不在单元格范围内 vba

  5. 5

    将字符串设置为单元格中的值?

  6. 6

    不允许使用字符串吗?如何将范围的最大限制定义为csv列中的单元格值?

  7. 7

    用字符串/单元格内容设置范围

  8. 8

    如何在Apache POI XSSF 4.10中将单元格类型设置为字符串?

  9. 9

    字符串作为VBA中单元格的函数

  10. 10

    Matlab中单元格数组的子字符串

  11. 11

    Matlab中单元格数组的子字符串

  12. 12

    将新字符串添加到数组时,如何在UICollectionView中创建新单元格

  13. 13

    在不使用VBA的Excel中拆分字符串(单元格)(例如,用于数组公式)

  14. 14

    在单元格数组的单元格数组中查找字符串

  15. 15

    在单元格数组的单元格数组中查找字符串

  16. 16

    Excel VBA将单元格中的字符串作为带变量的公式求值

  17. 17

    如何将字符串的单元格数组转换为字符串矩阵?

  18. 18

    更改单元格数组中许多字符串中的子字符串

  19. 19

    将字符串与CSV文件中的单元格匹配并返回相邻的单元格

  20. 20

    在字符串的单元格数组中查找多个字符串的位置

  21. 21

    将每个单元格中的多个字符串列分解为无序的单个单元格字符串

  22. 22

    如何使用 VBA 将数组公式作为长度超过 255 个字符的字符串自动输入到 Excel 单元格中?

  23. 23

    如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型不起作用

  24. 24

    C ++以编程方式将字符串编码为字符串文字

  25. 25

    连接字符串的单元格数组将导致无法打印的字符

  26. 26

    如何将字符串格式的单元格地址与范围一起使用?

  27. 27

    通过替换或左字符串函数从范围中的单元格中删除子字符串

  28. 28

    将单元格的内容添加到VBA中的字符串变量中。另外,使用offset在其下方添加单元格

  29. 29

    Excel Vba获取单元格的值并设置字符串

热门标签

归档