在vba excel中保存大量字符串

在vba excel中保存大量字符串,vba,excel,Vba,Excel,我必须制作一个应用程序来加载excel vba中的图像,加密该图像并将其保存在单元格中。我的问题是单元格中的字符限制(32.767个字符),而我的加密字符串类似于800k个字符 我创建了一个函数,用于生成一个具有自定义字符串长度的字符串数组以保存在一行中,但当我保存在单元格中时,我收到以下错误: 我通过在for循环中添加延迟来解决这个问题,但这不是一个最佳解决方案 For index = 1 To UBound(StringArray) Sheet5.C

我必须制作一个应用程序来加载excel vba中的图像,加密该图像并将其保存在单元格中。我的问题是单元格中的字符限制(32.767个字符),而我的加密字符串类似于800k个字符

我创建了一个函数,用于生成一个具有自定义字符串长度的字符串数组以保存在一行中,但当我保存在单元格中时,我收到以下错误:

我通过在for循环中添加延迟来解决这个问题,但这不是一个最佳解决方案

        For index = 1 To UBound(StringArray)
            Sheet5.Cells(55, ind).value = StringArray(index)
            ind = ind + 1
            Application.Wait (Now + TimeValue("00:00:01"))
        Next index

现在的问题是:我能不能让这个更快或者更好地解决这个问题?

将数组转储到一行内的单元格中,而不使用循环

Sheet5.Cells(55, "A").resize(1, ubound(StringArray) + 1) = StringArray

低挂果警报:为什么不使用Long而不是Integer,去掉ind并在单元格中使用index+1()?添加DoEvents而不是Wait是否有帮助?关闭屏幕更新,直到操作完成。函数末尾是否需要()签名?问题不在SplitString函数中,该函数可以工作,但当我添加从该函数返回的数组值时,它会导致内存不足。而@QHarr,该索引是我的单元格的计数,因为我将每个元素添加到同一行的不同单元格中。编辑:DoEvent给出相同的错误是。。。但是它和索引的作用是一样的,所以我想你是在添加不必要的代码行。是的,我像你说的那样修改了该指令,但是如果我删除wait指令fwiw,仍然会给出相同的错误。如果你把一个一维数组放到一列而不是一行中的多个单元格中,你就必须使用application.transpose(StringArray)。
Sheet5.Cells(55, "A").resize(1, ubound(StringArray) + 1) = StringArray