невозможно сохранить файл Excel с помощью vba:

#excel #vba #save

#excel #vba #Сохранить

Вопрос:

У меня есть код vba, который содержит GIF в кодировке base64.

Когда я копирую и вставляю закодированный gif-файл base64 из блокнота в мой вспомогательный процесс в vba следующим образом:

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

затем я не могу сохранить его со следующей ошибкой: «Ошибки были обнаружены при сохранении ….».

У меня есть вырубка, она поставляется только со строкой копировать / вставить из блокнота, но я действительно не понимаю, что происходит.

Есть ли что-то, что уже сталкивалось с этой проблемой?

Спасибо!

Комментарии:

1. В конечном итоге он превышает 32 767 символов?

2. Да, это так, он достигает 197 000 символов. Но строка находится в подпроцессе, а не внутри ячейки. Мой код работает хорошо, проблема появляется только тогда, когда мне нужно сохранить..

3. Тогда вам придется найти другой метод. Подумайте, почему вам нужно сохранить изображение в виде строки base64. Существуют ограничения, которые вы не можете превышать. Возможно, вместо этого сохраните изображение в файл, а затем сохраните путь / имя файла к изображению. Трудно понять, что рекомендовать, не зная всего процесса. Просто знайте, что это не будет работать так, как вы хотите.

Ответ №1:

Я только что создал форму для анимации gif во время выполнения моего скрипта:

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

где imgStr — это мой закодированный 64 gif. Но я думаю, что он слишком большой..