2016-09-03 3 views
-1

обр это массив строкExcel VBA: Копирование массива строк Диапазона - Строка содержит двойные кавычки

Используя этот код, чтобы скопировать массив в колонку отлично работает до тех пор, строка, содержащая двойные кавычки (") символы не является достиг, который вызывает ошибку.

Струна в обрах считываются в из текстового файла и содержит двойные кавычки.

Application.Worksheets("Sheet1").Columns(1) = arr 

Что это лучший способ обойти это?

Редактировать:

Open filePath For Input As 1 
Line Input #1, NewTextLine 
arr(index, 1) = textLine 

Пример элемента обр(), который вызывает проблему:

«2016-08-30 11: 12: 07.9120759§3§§0§§§§§§ §0§CompositeIodBuilder.Build() - Список тегов Dicom для хранения цифровых рентгеновских изображений - для презентации: Patient_s_Name Tag = "(0010,0010)" VR = "PN" VM = "1" Value = "xx xxxx^хххх^ххх " Patient_ID Tag = "(0010,0020)" VR ="

Я просто п при копировании в этот пост, что строка содержит символы CR и LF. Возможно, я ошибочно предположил, что это котировки, вызывающие проблемы, а не CR и LF.

+0

У нас уже есть 5 других Как здесь содержится [более 911 символов] (http://stackoverflow.com/search?q=%22more+than+911+characters%22), поэтому я предлагаю лучше не держать это тоже (и Q). – pnuts

ответ

-1

Трудно ответить на это, не видя ваши данные, но, теоретически, если значение может быть записано в переменную String, оно также должно быть доступно для записи на листе.

Если взять этот пример, нет никаких трудностей:

Dim arr(1 To 2, 1 To 1) As String 

arr(1, 1) = """a""" 
arr(2, 1) = Chr(34) & Chr(34) & "b" & Chr(34) & Chr(34) 

Sheet1.Cells(1, 1).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr 

Однако код для записи массива в столбец выглядит немного подозрительно. В идеальном случае размер диапазона записи будет соответствовать размерам вашего массива. В моем примере следующий код написал список #NA.

Dim arr(1 To 2, 1 To 1) As String 

arr(1, 1) = """a""" 
arr(2, 1) = Chr(34) & Chr(34) & "b" & Chr(34) & Chr(34) 

Sheet1.Columns(1).Value = arr 

Интересно, если вы могли бы а) изменить код, чтобы написать массив в пределах соответствующего размера и б) привести примеры ваших проблемных строк, если проблема все еще существует.

+0

Спасибо. Просто добавили дополнительную информацию в сообщение. – Mark

0

Проблема была в Excel 2003 с проблемой с строкой длиной более 911 символов.

Эта проблема может возникнуть, если один или несколько ячеек в массиве (диапазон клеток) содержит строку символов, который установлен, чтобы содержать более 911 символов .

Смежные вопросы