Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сортировка двумерного массива после загрузки .csv файла - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка двумерного массива после загрузки .csv файла (Макросы/Sub)
Сортировка двумерного массива после загрузки .csv файла
_Boroda_ Дата: Среда, 15.10.2014, 09:29 | Сообщение № 41
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
откуда такое начало записи:
[vba]
Код
Лист2.Cells.ClearContent
[/vba]

Обращение к листу: Товарищи; Господа; Эй, ты! Да-да, вот ты!


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
откуда такое начало записи:
[vba]
Код
Лист2.Cells.ClearContent
[/vba]

Обращение к листу: Товарищи; Господа; Эй, ты! Да-да, вот ты!

Автор - _Boroda_
Дата добавления - 15.10.2014 в 09:29
Vostok Дата: Среда, 15.10.2014, 11:42 | Сообщение № 42
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Надо просто:
1. согласовать размер выходного массива с учётом откинутых строк ReDim M(UBound(A)-2, C) откинуть нужное количество

Во-первых, ReDim "убьёт" всё содержимое массива. Во-вторых можно было бы вставить Preserve, но массив то двумерный и это ни к чему не приведёт.
Ну а здесь:
... организовать цикл с нужной строки по нужную For i = 2 To UBound(A) - 2 ' по всем строкам (с учётом, что массив А начинается с индекса = 0) 3. Согласовать индексы массивов при разбиении строк. типа M(i - 2, j) = T(j)

я реально "заблудился". Сложноватый вариант. Очень хотел разобраться, но мозги от циклов зациклились. Так что, остановлюсь на старом варианте. Он как то попроще будет, ну и попонятнее естественно.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 15.10.2014, 12:20
 
Ответить
Сообщение
Надо просто:
1. согласовать размер выходного массива с учётом откинутых строк ReDim M(UBound(A)-2, C) откинуть нужное количество

Во-первых, ReDim "убьёт" всё содержимое массива. Во-вторых можно было бы вставить Preserve, но массив то двумерный и это ни к чему не приведёт.
Ну а здесь:
... организовать цикл с нужной строки по нужную For i = 2 To UBound(A) - 2 ' по всем строкам (с учётом, что массив А начинается с индекса = 0) 3. Согласовать индексы массивов при разбиении строк. типа M(i - 2, j) = T(j)

я реально "заблудился". Сложноватый вариант. Очень хотел разобраться, но мозги от циклов зациклились. Так что, остановлюсь на старом варианте. Он как то попроще будет, ну и попонятнее естественно.

Автор - Vostok
Дата добавления - 15.10.2014 в 11:42
AndreTM Дата: Среда, 15.10.2014, 15:41 | Сообщение № 43
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
можно было бы вставить Preserve, но массив то двумерный и это ни к чему не приведёт
ReDim Preserve умеет переопределять массив с изменением ПОСЛЕДНЕЙ размерности. Кто вам запрещает определить массив как
[vba]
Код
ReDim (1 to 3, 1 to 8)
[/vba]
Затем отработать с последней размерностью:
[vba]
Код
ReDim Preserve (1 to 3, 1 to 15)
[/vba]
Затем, если надо, выгрузить массив на лист. Либо используя циклы, либо предварительно использовав .Transpose
[vba]
Код
for i = 1 to 3
      for j = 1 to 15
          Cells(j,i) = a(i,j)
      next
next
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Среда, 15.10.2014, 15:42
 
Ответить
Сообщение
можно было бы вставить Preserve, но массив то двумерный и это ни к чему не приведёт
ReDim Preserve умеет переопределять массив с изменением ПОСЛЕДНЕЙ размерности. Кто вам запрещает определить массив как
[vba]
Код
ReDim (1 to 3, 1 to 8)
[/vba]
Затем отработать с последней размерностью:
[vba]
Код
ReDim Preserve (1 to 3, 1 to 15)
[/vba]
Затем, если надо, выгрузить массив на лист. Либо используя циклы, либо предварительно использовав .Transpose
[vba]
Код
for i = 1 to 3
      for j = 1 to 15
          Cells(j,i) = a(i,j)
      next
next
[/vba]

Автор - AndreTM
Дата добавления - 15.10.2014 в 15:41
alex77755 Дата: Среда, 15.10.2014, 21:47 | Сообщение № 44
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
ReDim "убьёт" всё содержимое массива

Естественно.
Но если все файлы имеют одинаковую структуру и вы уверены, что первые три строки не являются носителями полезной информации и не нужны на листе, то и назначайте выходной массив на 3 меньше. Хотя даже можно этого не делать: обрабатывайте массив строк начиная с 4 строки, но записывайте в выходной массив начиная с 1 строки. Иначе при выгрузке на лист первые 3 строки будут пустыми.


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
ReDim "убьёт" всё содержимое массива

Естественно.
Но если все файлы имеют одинаковую структуру и вы уверены, что первые три строки не являются носителями полезной информации и не нужны на листе, то и назначайте выходной массив на 3 меньше. Хотя даже можно этого не делать: обрабатывайте массив строк начиная с 4 строки, но записывайте в выходной массив начиная с 1 строки. Иначе при выгрузке на лист первые 3 строки будут пустыми.

Автор - alex77755
Дата добавления - 15.10.2014 в 21:47
Vostok Дата: Четверг, 16.10.2014, 09:16 | Сообщение № 45
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
но записывайте в выходной массив начиная с 1 строки. Иначе при выгрузке на лист первые 3 строки будут пустыми.

Наверное это последний "гемморой" в теме. Вчера от циклов - чуть "крыша" не поехала. Сегодня всё исправил, при направляющей "руке" участвующих в теме(alex77755, AndreTM). Приведу к единому виду и выложу этот вариант с разъяснениями для публики. Может ещё у кого модернизация появится :)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Четверг, 16.10.2014, 10:41
 
Ответить
Сообщение
но записывайте в выходной массив начиная с 1 строки. Иначе при выгрузке на лист первые 3 строки будут пустыми.

Наверное это последний "гемморой" в теме. Вчера от циклов - чуть "крыша" не поехала. Сегодня всё исправил, при направляющей "руке" участвующих в теме(alex77755, AndreTM). Приведу к единому виду и выложу этот вариант с разъяснениями для публики. Может ещё у кого модернизация появится :)

Автор - Vostok
Дата добавления - 16.10.2014 в 09:16
Vostok Дата: Четверг, 16.10.2014, 10:29 | Сообщение № 46
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
ИТОГОВОЕ РЕШЕНИЕ № 1 ДЛЯ ВАРИАНТА alex77755
(Работает с небольшими файлами *.csv. Тестировался с файлом в 1000 строк)(С комментариями для новичков)

Возможности:
'1. Загрузка файла *.csv в двумерный массив
'2. Сортирорвка в массиве по убыванию, так как в файле данные представлены по возрастанию
'3. Установка в массиве нужного количества строк
'3. Выгрузка на лист из массива полученного материала

К сообщению приложен файл: ___csv.rar (27.6 Kb)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Пятница, 17.10.2014, 06:48
 
Ответить
СообщениеИТОГОВОЕ РЕШЕНИЕ № 1 ДЛЯ ВАРИАНТА alex77755
(Работает с небольшими файлами *.csv. Тестировался с файлом в 1000 строк)(С комментариями для новичков)

Возможности:
'1. Загрузка файла *.csv в двумерный массив
'2. Сортирорвка в массиве по убыванию, так как в файле данные представлены по возрастанию
'3. Установка в массиве нужного количества строк
'3. Выгрузка на лист из массива полученного материала


Автор - Vostok
Дата добавления - 16.10.2014 в 10:29
alex77755 Дата: Четверг, 16.10.2014, 12:09 | Сообщение № 47
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
'транспон-ем массив, для возможности изменить колич. строк массива

Стесняюсь спросить: а зачем эти танци с бубном?
Почему сразу не сделать
[vba]
Код
ReDim M(150, C)
    For i = 2 To 152  
[/vba]
Разумеется сначала проверив UBound(A). Если он меньше 150, то назначать UBound(A)
Зачем делать лишние преобразования массива строк А в двумерный массив М, что бы потом его обрезать?
Да ещё применяя функцию Transpose имеющую ряд ограничений:

  • Массив не может содержать элементов, длина которых превышает 255 знаков.
  • Массив не может содержать пустые (Null) значения.
  • Количество элементов не может превышать 5461.


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Четверг, 16.10.2014, 12:22
 
Ответить
Сообщение
Цитата
'транспон-ем массив, для возможности изменить колич. строк массива

Стесняюсь спросить: а зачем эти танци с бубном?
Почему сразу не сделать
[vba]
Код
ReDim M(150, C)
    For i = 2 To 152  
[/vba]
Разумеется сначала проверив UBound(A). Если он меньше 150, то назначать UBound(A)
Зачем делать лишние преобразования массива строк А в двумерный массив М, что бы потом его обрезать?
Да ещё применяя функцию Transpose имеющую ряд ограничений:

  • Массив не может содержать элементов, длина которых превышает 255 знаков.
  • Массив не может содержать пустые (Null) значения.
  • Количество элементов не может превышать 5461.

Автор - alex77755
Дата добавления - 16.10.2014 в 12:09
Vostok Дата: Четверг, 16.10.2014, 13:09 | Сообщение № 48
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Стесняюсь спросить: а зачем эти танци с бубном? Почему сразу не сделать
ReDim M(150, C)
For i = 2 To 152

К сожалению, ни без танцев , ни без бубна в данном случае не обойтись. :( Если сделать как Вы предложили у нас останутся только 150 строк от первоначального файла *.csv и "свежие" даты, которые находятся внизу файла обрежутся. А они то нам и нужны в первую очередь. Если бы файл *.csv давал данные сверху-вниз от сегоднейшей даты к старой - не вопрос. Вот в этом вся хрень с этими *.csv и заключается, из-за этого вся эта тема на три листа и растянулась.

Да ещё применяя функцию Transpose имеющую ряд ограничений:
Массив не может содержать элементов, длина которых превышает 255 знаков.
Массив не может содержать пустые (Null) значения.
Количество элементов не может превышать 5461.


Ну а с этим согласен. На больших файлах будет сбой. Но вот сейчас взял файл в 1000 строк - отработал на Ура. Ну а вообще, для больших файлов возьмём для транспонирования пользовательскую функцию. Есть такая. Позже приведу её здесь, после тестов.

Зачем делать лишние преобразования массива строк А в двумерный массив М, что бы потом его обрезать?

А двумерный массив нам нужен изначально, чтобы файл *.csv на столбцы разбить.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Пятница, 17.10.2014, 06:33
 
Ответить
Сообщение
Стесняюсь спросить: а зачем эти танци с бубном? Почему сразу не сделать
ReDim M(150, C)
For i = 2 To 152

К сожалению, ни без танцев , ни без бубна в данном случае не обойтись. :( Если сделать как Вы предложили у нас останутся только 150 строк от первоначального файла *.csv и "свежие" даты, которые находятся внизу файла обрежутся. А они то нам и нужны в первую очередь. Если бы файл *.csv давал данные сверху-вниз от сегоднейшей даты к старой - не вопрос. Вот в этом вся хрень с этими *.csv и заключается, из-за этого вся эта тема на три листа и растянулась.

Да ещё применяя функцию Transpose имеющую ряд ограничений:
Массив не может содержать элементов, длина которых превышает 255 знаков.
Массив не может содержать пустые (Null) значения.
Количество элементов не может превышать 5461.


Ну а с этим согласен. На больших файлах будет сбой. Но вот сейчас взял файл в 1000 строк - отработал на Ура. Ну а вообще, для больших файлов возьмём для транспонирования пользовательскую функцию. Есть такая. Позже приведу её здесь, после тестов.

Зачем делать лишние преобразования массива строк А в двумерный массив М, что бы потом его обрезать?

А двумерный массив нам нужен изначально, чтобы файл *.csv на столбцы разбить.

Автор - Vostok
Дата добавления - 16.10.2014 в 13:09
Vostok Дата: Четверг, 16.10.2014, 13:18 | Сообщение № 49
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Была ещё идея. Взять массив А()
[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(NAME).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]
и перевернуть его с "ног на голову" (реверс), чтобы старые данные оказались внизу, а свежие - вверху. А потом задать размер двумерного массива, обрезав старые данные (обрежутся снизу).
Тогда бы транспонирование в будущем не потребовалось. Но тут я "завис". Вроде простая операция на первый взгляд, но у меня пока ничего не получилось. Вылетают ошибки одна за другой, не разобрался.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Пятница, 17.10.2014, 06:34
 
Ответить
СообщениеБыла ещё идея. Взять массив А()
[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(NAME).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]
и перевернуть его с "ног на голову" (реверс), чтобы старые данные оказались внизу, а свежие - вверху. А потом задать размер двумерного массива, обрезав старые данные (обрежутся снизу).
Тогда бы транспонирование в будущем не потребовалось. Но тут я "завис". Вроде простая операция на первый взгляд, но у меня пока ничего не получилось. Вылетают ошибки одна за другой, не разобрался.

Автор - Vostok
Дата добавления - 16.10.2014 в 13:18
alex77755 Дата: Четверг, 16.10.2014, 15:36 | Сообщение № 50
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

[vba]
Код
  For i = UBound(A) To UBound(A) - 150 Step -1  
[/vba]
Взять последние 150 строк массива А
Для индексов выходного массива проще ввести новую переменную


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение[vba]
Код
  For i = UBound(A) To UBound(A) - 150 Step -1  
[/vba]
Взять последние 150 строк массива А
Для индексов выходного массива проще ввести новую переменную

Автор - alex77755
Дата добавления - 16.10.2014 в 15:36
alex77755 Дата: Четверг, 16.10.2014, 15:56 | Сообщение № 51
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Примерно так (если надо без шапки)
Если шапка нужна - добавить цикл дописи шапки и сортировка тогда не с 1 строки:

Без проверки корректности ответа на запрос

Для организации проверок на корректность заменить строку на блок:


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Четверг, 16.10.2014, 17:42
 
Ответить
СообщениеПримерно так (если надо без шапки)
Если шапка нужна - добавить цикл дописи шапки и сортировка тогда не с 1 строки:

Без проверки корректности ответа на запрос

Для организации проверок на корректность заменить строку на блок:

Автор - alex77755
Дата добавления - 16.10.2014 в 15:56
Vostok Дата: Пятница, 17.10.2014, 09:34 | Сообщение № 52
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
ИТОГОВОЕ РЕШЕНИЕ № 2 ДЛЯ ВАРИАНТА alex77755

Как видно, при правильном подходе сортировка оказалась вообще не нужна. Просто прошлись с конца файла с самого начала и всё. В сравнении с вариантом в"Сообщении 25" этот в 10 раз короче.



"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Пятница, 17.10.2014, 09:45
 
Ответить
СообщениеИТОГОВОЕ РЕШЕНИЕ № 2 ДЛЯ ВАРИАНТА alex77755

Как видно, при правильном подходе сортировка оказалась вообще не нужна. Просто прошлись с конца файла с самого начала и всё. В сравнении с вариантом в"Сообщении 25" этот в 10 раз короче.


Автор - Vostok
Дата добавления - 17.10.2014 в 09:34
Vostok Дата: Суббота, 01.11.2014, 13:55 | Сообщение № 53
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Тема та же, но файл .csv другой. Одно не пойму - он практически не отличается от предыдущего, но строка
[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]
отказывается работать. Split не может корректно разбить строку. Как побороть это файл, ума не приложу.

Он, кстати, и стандартным методом разбиения по столбцам в Excel отказывается "биться" корректно с сохранением данных.
Интересует собственно работа этой строки кода, далее - занесение в массив, всё должно работать правильно.

Приложил ещё тот же файл, но оригинальный с сайта. Его качал и его сохранял под новым именем. Этот новый файл и используется в примере. Может при сохранении что то нарушилось в структуре? Хотя я и его пробовал обрабатывать, та же история.
К сообщению приложен файл: 8936262.rar (23.1 Kb) · table.csv (48.7 Kb)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 01.11.2014, 14:16
 
Ответить
СообщениеТема та же, но файл .csv другой. Одно не пойму - он практически не отличается от предыдущего, но строка
[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbNewLine)
[/vba]
отказывается работать. Split не может корректно разбить строку. Как побороть это файл, ума не приложу.

Он, кстати, и стандартным методом разбиения по столбцам в Excel отказывается "биться" корректно с сохранением данных.
Интересует собственно работа этой строки кода, далее - занесение в массив, всё должно работать правильно.

Приложил ещё тот же файл, но оригинальный с сайта. Его качал и его сохранял под новым именем. Этот новый файл и используется в примере. Может при сохранении что то нарушилось в структуре? Хотя я и его пробовал обрабатывать, та же история.

Автор - Vostok
Дата добавления - 01.11.2014 в 13:55
doober Дата: Суббота, 01.11.2014, 14:29 | Сообщение № 54
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbNewLine)
If ubound(A)<2 then A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbLf)
[/vba]
Откройте файл Notepad++,включите опцию отображать символы переноса,все станет понятно.
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи


 
Ответить
Сообщение[vba]
Код
A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbNewLine)
If ubound(A)<2 then A = Split(CreateObject("Scripting.FileSystemObject").Getfile(LINK).OpenasTextStream(1).ReadAll, vbLf)
[/vba]
Откройте файл Notepad++,включите опцию отображать символы переноса,все станет понятно.
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи

Автор - doober
Дата добавления - 01.11.2014 в 14:29
Vostok Дата: Суббота, 01.11.2014, 14:57 | Сообщение № 55
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Откройте файл Notepad++,включите опцию отображать символы переноса,все станет понятно.

Вот как чувствовал что всё дело в символах переноса, а как их увидеть - не знал. Спасибо за помощь.
У данного файла стоит символ переноса Lf и вы применили константу vbLf.
У ранее рассмотренного в прошлых примерах файла .csv был перенос CRLf и отрабатывала константа vbNewLine.

А какие ещё бывают символы переноса и подходящие к ним константы VBA. Где об этом хотя бы почитать можно? Изучаю Уокенбаха, и постоянно какие-то вопросы зависают. Что-то он не очень информативен.

Кстати, с этим символом переноса (Lf) похоже и сам Excel не справляется , в смысле по разбивке на столбы стандартным способом.

Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи

А вот тут, простите, мысли не понял.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 01.11.2014, 15:01
 
Ответить
Сообщение
Откройте файл Notepad++,включите опцию отображать символы переноса,все станет понятно.

Вот как чувствовал что всё дело в символах переноса, а как их увидеть - не знал. Спасибо за помощь.
У данного файла стоит символ переноса Lf и вы применили константу vbLf.
У ранее рассмотренного в прошлых примерах файла .csv был перенос CRLf и отрабатывала константа vbNewLine.

А какие ещё бывают символы переноса и подходящие к ним константы VBA. Где об этом хотя бы почитать можно? Изучаю Уокенбаха, и постоянно какие-то вопросы зависают. Что-то он не очень информативен.

Кстати, с этим символом переноса (Lf) похоже и сам Excel не справляется , в смысле по разбивке на столбы стандартным способом.

Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи

А вот тут, простите, мысли не понял.

Автор - Vostok
Дата добавления - 01.11.2014 в 14:57
doober Дата: Суббота, 01.11.2014, 15:04 | Сообщение № 56
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Цитата
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи

Чуть позже выложу пример


 
Ответить
Сообщение
Цитата
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи

Чуть позже выложу пример

Автор - doober
Дата добавления - 01.11.2014 в 15:04
Vostok Дата: Суббота, 01.11.2014, 15:23 | Сообщение № 57
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи
Чуть позже выложу пример

Ок, заинтриговали :)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 01.11.2014, 15:43
 
Ответить
Сообщение
Но я бы при таких вариантах читал построчно и создал бы пользовательский тип свеча и добавлял в массив Свечи
Чуть позже выложу пример

Ок, заинтриговали :)

Автор - Vostok
Дата добавления - 01.11.2014 в 15:23
doober Дата: Суббота, 01.11.2014, 15:44 | Сообщение № 58
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Дождались?

Внес изменения




Сообщение отредактировал doober - Суббота, 01.11.2014, 16:13
 
Ответить
СообщениеДождались?

Внес изменения

Автор - doober
Дата добавления - 01.11.2014 в 15:44
Vostok Дата: Суббота, 01.11.2014, 15:51 | Сообщение № 59
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Дождались?

Красиво! Ещё бы осмыслить как этим пользоваться! Ухожу на "перезагрузку" %)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 01.11.2014, 15:53
 
Ответить
Сообщение
Дождались?

Красиво! Ещё бы осмыслить как этим пользоваться! Ухожу на "перезагрузку" %)

Автор - Vostok
Дата добавления - 01.11.2014 в 15:51
doober Дата: Суббота, 01.11.2014, 16:13 | Сообщение № 60
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Я внес изменения в код выше.
Формат даты изначально упустил.


 
Ответить
СообщениеЯ внес изменения в код выше.
Формат даты изначально упустил.

Автор - doober
Дата добавления - 01.11.2014 в 16:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка двумерного массива после загрузки .csv файла (Макросы/Sub)
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!