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,则不会引发错误。