VBA单元复制字符限制

我的部分VBA代码涉及将一个长string从一个单元复制并粘贴到另一个单元。 我的代码工作正常,直到源单元格中的字符太多。 经过一些testing后,如果Cell E16的字符数大于8000(大约),我认为我的代码会产生一个runtime error 1004 。 在这一刻,我有一个解决方法是将源单元格分配给中间单元格。 如果可能的话,我可以知道这个问题的原因是什么? 如果真的很长,我需要将我的细胞(E16)的内容分成多个?

如果在E16中有太多的字符,这种方法是行不通的

 Sheets(SN_Pound).Range("A10") = Sheets(SN_LV).Range("E16") 

这种方法起作用

 CHR_LV_str = Sheets(SN_LV).Range("E16") Sheets(SN_Pound).Range("A10") = CHR_LV_str 

不pipe是什么导致错误似乎与使用Range对象的默认属性有关。 如果该属性是明确指定的,则不存在错误:

 With Sheets(1) .Range("E16").Value = String$(30000, "x") Debug.Print Len(.Range("E16").Value) 'Prints 30000 ' .Range("A10") = Range("E16") 'Error 1004 .Range("A10").Value = .Range("E16").Value 'No error Debug.Print Len(.Range("A10").Value) 'Prints 30000 .Range("E16").Value = String$(60000, "x") Debug.Print Len(.Range("E16").Value) 'Prints 32767 End With 

请注意,@Slai在注释中提到的链接的最大单元格文本长度是32767,但它只是被截断。 如果尝试分配更长的string,则不会引发错误。