无法使用 vba 保存 excel 文件:

Posted

技术标签:

【中文标题】无法使用 vba 保存 excel 文件:【英文标题】:unable to save excel file with vba: 【发布时间】:2020-11-20 23:03:05 【问题描述】:

我有一个包含 base64 编码 GIF 的 vba 代码。

当我将编码的 base64 gif 从记事本复制粘贴到 vba 中的子进程时,如下所示:

imgStr = imgStr & "data:image/gif;base64,R0lGODlh4AHwAPdrAEksR5CSk5KUlpSVl5aYmpibnJudnZ6fn653la6usLS0tba2tre4uLm5ubu6uru6vb6+vsXFxs/MzdDT0tnZ2d7d3ebn5+vq6+/x8fHx8fj5+f39/f7+/jsrRkEVPEMaQENxez8MNUEROUETO0EUO0ITOkwfRUFLWERNW1JfaVmfqa2ztESVm0AROTZNWj6LkS9pcqOenmiUmDl9gmpjdotlh"
imgStr = imgStr & "pmdnTV3fUGSl0COlECPlUCQljqLkkOPlTmAhz+LklhJWUGPk5yYnmU9XxsjKC41PDM0NjQ9RUdSXkmgpk18iVBSVGpsbnAQWXodU4OEip0hUJ1CdKAfPaanqLFvgLMUH7QcMLcZJbtXc72SsL9TS8AyOcOzushVXNCfrNF5gN3d3d7x8d+yud/f3+Pj4+34+PLy8vPx8/Tz8/X19fb19SAmLCInLSIpLyQoLiUrMS".....

然后我无法保存它并出现以下错误:“错误被检测到保存......”。

我确实有这种感觉,它只附带字符串是从记事本复制/粘贴,但我真的不明白发生了什么。

有没有遇到过这个问题的东西?

谢谢!

【问题讨论】:

最终是否超过 32,767 个字符? 是的,它达到了 197 000 个字符。但是该字符串位于子进程中,而不是在单元格内。我的代码运行良好,只有在需要保存时才会出现问题.. 你将不得不找到一种不同的方法。想想为什么需要将图像保存为 base64 字符串。有你不能超过的限制。也许将图像保存到文件中,然后将路径/文件名存储到图像中。在不了解整个过程的情况下,很难真正知道要推荐什么。只要知道它不会按照您希望的方式工作。 【参考方案1】:

我只是做了一个表格,在我的脚本执行期间有一个 gif 动画:

<html><BODY style='border-style:none;'><div style='align:center'><img alt='' src='" & imgStr & "' /></div></BODY></HTML>"

imgStr 是我编码的 64 位 gif。但我想它太大了..

【讨论】:

以上是关于无法使用 vba 保存 excel 文件:的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA代码无法保存

Excel 崩溃,VBA 用户窗体无法保存

Excel VBA 宏无法在同事的计算机上保存工作簿,但在我的计算机上很好

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件

如何在excel VBA中获取保存文件的路径和名称?

VBA 代码无法在启用宏的文件类型中运行