Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Импорт в эксель, на несколько листов согласно условию.
 
При импорте файлов в эксель уткнулся в ограничение 65536 строк на листе
Импортирую с помощью макроса
макрос


Для обхода ограничений хочется реализовать следующие.
В исходных файлах столбец BN сожержит серийный номер./

       .TextFileColumnDataTypes = Array(9, 1, 9, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 9, 9, 9, _
       9, 9, 9, 9, 1, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 1, 1, 9)

Хотелось бы что бы макрос при импорте сразу разбрасывал данные с разными серийниками по разным листам

Подскажите куда копать, может кто видел решения?
Теряются разделители разрядов при импорте макросом из TSV файлов
 
Предыстория
Программа генерит логи в виде файлов которые по своей сути TSV, но расширения имеют XLS. В качестве разделителя разряда выступает запятая ",".
Проблема в том что при импорте с помощью
макроса


Теряются разделитель разряда если если число >1

Подскажите как побороть это.
TSV - XLS, Помогите соединить два макроса
 
Есть макрос который объеденяет множество файлов в 1 лист, причём из исходных файлов берёт только нужные столбцы, и вставляет их на лист подряд
макрос1




Проблема в том что исходные файлы сохранены в формате TSV, с разрешением XLS
И в некоторых случаях первый макрос теряет разделители разрядов.

Есть второй макрос который данные из TSV файла вставляет в эксель, нормально сохраняя разделитель разряда
макрос2



Вопрос подскажите, как это дело объединить.

Заранее большое спасибо!
Изменено: CZM - 12.04.2013 10:24:49
Копирования и вставка несвязных диапазонов (столбцов)
 
Нужно скопировать несколько несвязных между собой диапазонов (столбцов). с одного листа и вставить их подряд на другой лист
Например

Скопировать столбцы B,D,E,U,AH,AU,BH,BL,BN
И вставить их в столбцы A-I

Переделывай под свои нужды чужой код, совершенно не знаком с VBA. Было

Код
Set ra = sh.Range(sh.Range("a2"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 9)
shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).Value = ra.Value

Копировало 9 столбцов

Попробовал через Union объединение нужные мне диапазоны
Код
Set B = sh.Range(sh.Range("B2"), sh.Range("B" & sh.Rows.Count).End(xlUp))
            Set D = sh.Range(sh.Range("D2"), sh.Range("D" & sh.Rows.Count).End(xlUp))
            Set E = sh.Range(sh.Range("E2"), sh.Range("E" & sh.Rows.Count).End(xlUp))
            Set U = sh.Range(sh.Range("U2"), sh.Range("U" & sh.Rows.Count).End(xlUp))
            Set AH = sh.Range(sh.Range("AH2"), sh.Range("AH" & sh.Rows.Count).End(xlUp))
            Set AU = sh.Range(sh.Range("AU2"), sh.Range("AU" & sh.Rows.Count).End(xlUp))
            Set BH = sh.Range(sh.Range("BH2"), sh.Range("BH" & sh.Rows.Count).End(xlUp))
            Set BL = sh.Range(sh.Range("BH2"), sh.Range("BH" & sh.Rows.Count).End(xlUp))
            Set BN = sh.Range(sh.Range("BH2"), sh.Range("BH" & sh.Rows.Count).End(xlUp))
            
            Set ra = Union(B, D, E, U, AH, AU, BH, BL, BN)
            

shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).Value = ra.Value


Но вставляет только связаные диапазоны. Если оставить "D" и "E" то вставлят два столбца, иначе только столбец "B"

Вопрос. Как изменить код что бы вставлялись нужные столбцы
Страницы: 1
Наверх