Вот вам кое-что, ребята:
Я хочу читать информацию из закрытой книги с помощью ADODB в VBA EXCEL. Бывает, что строки в ячейках в Excel иногда имеют длину больше 255.
И вот это ограничение: http://support.microsoft.com/kb/189897
"Ваши данные могут быть усечены до 255 символов, если первые 8 записей для усекаемых полей содержат 255 или меньше символов. Драйвер Microsoft Excel ODBC по умолчанию просканирует первые 8 строк ваших данных, чтобы определить тип. данных в каждом столбце ".
Для этого есть «решение»: установка значения TypeGuessRows равным нулю (0) в реестре, но:
"По соображениям производительности установка значения TypeGuessRows на ноль (0) не рекомендуется, если ваша таблица Excel очень большая. Когда это значение установлено на ноль, Microsoft Excel будет сканировать все записи в вашей таблице, чтобы определить тип данных в каждой. столбец. "
Итак, вот мой вопрос:
Есть ли способ сказать (лгать) драйверу, что он прочитал более 255 символов (кроме помещения фиктивной строки в первую строку каждого столбца или установки значения TypeGuessRows на ноль (0)).
И если я не могу; есть ли способ записать в закрытые книги Excel и сохранить изменения, чтобы я мог вставить фиктивную первую строку в верхнюю часть каждого столбца, прежде чем я прочитал информацию из закрытой книги.
TypeGuessRows = 0
? Было бы разумно сначала посмотреть, насколько сильно это влияет на производительность ... - person   schedule 12.09.2014cn.Execute("INSERT INTO [namedRange] Values ('" & String(255, "i") & "'))"
, но он не примет строку длиной более 255 символов, поэтому не полагайтесь на это как на решение. - person   schedule 12.09.2014