Страницы: 1
RSS
VBA сортировка
 
люди ну помогите с этим VBA кодом, 2 дня убил прочитал книгу програмир. в VBA, но с этим кодом смог разобрать на половину. понятия не имею как доработать (как собака понимать понимаю но сказать не могу) . и вся задумка стоит из за этого макроса....
 
Я не автор того макроса (не помню, кто обычно ertert'ы пишет), поэтому править код не буду - надеюсь, автор появится.  
Но если правильно понял, то нужно  
1. брать в x с другого листа, и шире  
2. увеличить массив z в ширину:  
ReDim z(1 To UBound(x), 1 To 4)  
3. поменять знак при сравнении  
4. тут добавить элемент:  
z(k, 2) = x(i, 2): z(k, 3) = x(i, 4): z(k, 4) = x(i, 5)  
5. увеличить место выгрузки:  
[i7:k7]
Вроде всё.  
 
Но пример с новыми данными не помешал бы.
 
{quote}{login=Hugo}{date=06.07.2011 11:23}{thema=}{post}Я не автор того макроса (не помню, кто обычно ertert'ы пишет), поэтому править код не буду - надеюсь, автор появится.  
Но если правильно понял, то нужно  
1. брать в x с другого листа, и шире  
2. увеличить массив z в ширину:  
ReDim z(1 To UBound(x), 1 To 4)  
3. поменять знак при сравнении  
4. тут добавить элемент:  
z(k, 2) = x(i, 2): z(k, 3) = x(i, 4): z(k, 4) = x(i, 5)  
5. увеличить место выгрузки:  
[i7:k7]
Вроде всё.  
 
Но пример с новыми данными не помешал бы.{/post}{/quote}  
 
пример с новыми данными, так как есть на самом деле
 
Пример как есть в оригинале
 
никак файл не вставлю, еще раз пример
 
{quote}{login=I_van}{date=06.07.2011 11:32}{thema=Re: }{post}{quote}{login=Hugo}{date=06.07.2011 11:23}{thema=}{post}Я не автор того макроса (не помню, кто обычно ertert'ы пишет), поэтому править код не буду - надеюсь, автор появится.  
Но если правильно понял, то нужно  
1. брать в x с другого листа, и шире ДА  
2. увеличить массив z в ширину: ДА  
ReDim z(1 To UBound(x), 1 To 4)  
3. поменять знак при сравнении ДА  
4. тут добавить элемент:  
z(k, 2) = x(i, 2): z(k, 3) = x(i, 4): z(k, 4) = x(i, 5) (для чего это строка?)  
5. увеличить место выгрузки: (это тоже не знаю)  
[i7:k7]
 
и не знаю учтено ли что этот макрос работал до 49 строки, а с измененным знаком с 51 по 100 (по в данном случае не важно)
 
Давай автора подождём. Тем более, что задача усложнилась :)  
В том первом примере всё опиралось на первый столбец с цифрами - отслеживалось изменение цифр:  
Loop While x(i, 1) = x(i - 1, 1)  
В этом примере уже цифры с пропусками, следовательно тот код не пойдёт.  
Если пропуски убрать - можно наладить, как я выше написал.  
1. берём в массив все нужные данные  
2. создаём массив под результат  
3. анализируем, перекладываем  
4. выгружаем  
 
И я так и не понял - первый код должен работать до 50-й строки, а дальше второй код, или каждый код на своём листе, но второй с 51-й строки данные брать будет?  
Давайте нормальный пример - автору легче будет.
 
а я не понял вообще ни чего : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
ertert'ы пишет nilem :)  
Если заглянет на огонек, то ПРИВЕТ!!!! Передайте пожалуйста! :)
 
{quote}{login=Hugo}{date=06.07.2011 12:32}{thema=}{post}Давай автора подождём. Тем более, что задача усложнилась :)  
В том первом примере всё опиралось на первый столбец с цифрами - отслеживалось изменение цифр:  
Loop While x(i, 1) = x(i - 1, 1)  
В этом примере уже цифры с пропусками, следовательно тот код не пойдёт.  
Если пропуски убрать - можно наладить, как я выше написал.  
1. берём в массив все нужные данные  
2. создаём массив под результат  
3. анализируем, перекладываем  
4. выгружаем  
 
И я так и не понял - первый код должен работать до 50-й строки, а дальше второй код, или каждый код на своём листе, но второй с 51-й строки данные брать будет?  
Давайте нормальный пример - автору легче будет.{/post}{/quote}  
 
цифры без пропусков вообще пустых строк нет 1,2, и т.д., видать не досмотрел, первый код должен работать до 49 строки на 50 строке будет та же  шапка таблицы что и для первого кода.  (просто такая форма тупая что ж тут поделаешь) а с 51 строки тоже но с другим знаком б.д. та же просто до 49 строки с одним знаком потом 50 строка шапка и с 51 строки с другим знаком.
 
Понятно.  
Результат нужно выводить в одну таблицу, или в разные?  
Пока вижу так - первый код обрабатывает с 10 по 49 строку, второй с неизвестно пока какой до конца таблицы.  
Давайте всёж пример как рабочий, с шапками/данными строк на 100, и пример, как хотите видеть результат.  
А там может уже и автор ertert() появится :)
 
ну по другому никак! из песни слов не выкинешь! нормальный пример с "ненормальной" формы никак, имею что имею и переставлять нельзя ничего засада получилась
 
Ну это почти тот же виденный пример, с выводом ясно, хорошо.  
Но неясно пока, как выглядит шапка второй части исходных данных, и как выглядят сами данные.  
Пока только читаем  
"первый код должен работать до 49 строки на 50 строке будет та же шапка таблицы что и для первого кода. (просто такая форма тупая что ж тут поделаешь) а с 51 строки тоже но с другим знаком"  
Но в первой таблице шапка на 5 строк...
 
приложите файл с примером до и после
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Вот так попробуйте.  
 
PS. ertert, имхо, намного более содержательное название, чем, например, ttt :)
 
я очень часто использую в качестве имени процедур io(), просто потому, что ,буквы "i" и "o" располагаются под "(" и ")" соответственно : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
tt быстрее набирать :)  
И всегда можно следующий тестовый макрос в этом модуле назвать tt+t - меньше нужно думать :)
 
а я ertert'ом лев. руку разрабатываю :)  
tretre в другую сторону пока не очень получается :)
 
{quote}{login=nilem}{date=06.07.2011 04:56}{thema=}{post}а я ertert'ом лев. руку разрабатываю :)  
tretre в другую сторону пока не очень получается :){/post}{/quote}  
Распальцовка?
 
Надеюсь, это был не наезд на содержательность www:-)
Я сам - дурнее всякого примера! ...
 
{quote}{login=Hugo}{date=06.07.2011 02:39}{thema=}{post}Ну это почти тот же виденный пример, с выводом ясно, хорошо.  
Но неясно пока, как выглядит шапка второй части исходных данных, и как выглядят сами данные.  
Пока только читаем  
"первый код должен работать до 49 строки на 50 строке будет та же шапка таблицы что и для первого кода. (просто такая форма тупая что ж тут поделаешь) а с 51 строки тоже но с другим знаком"  
Но в первой таблице шапка на 5 строк...{/post}{/quote}  
 
Все в файле! спасибо за помощь, таблицы в 1 и 2 приверов связывать не надо 1 пример мой чисто хотел понять и дописать макрос сам, второй понял что не напишу и выложил оригинал отчета с фруктами. А вообще допишу в приложенном файле, На предприятии уже вломили  работать было не охота, здорово напился пива., но до жути хочу увидеть в действии то что задумал уже 3 дня снится эта хрень...
 
Николай 06.07.2011, 16:42 уже показал файл (я правда его не смотрел).
 
Как то странно считает
 
{quote}{login=nilem}{date=06.07.2011 04:42}{thema=}{post}Вот так попробуйте.  
 
PS. ertert, имхо, намного более содержательное название, чем, например, ttt :){/post}{/quote}  
пытался поэкспериментировать с данными, тут маленькая загвоздка, ваш 1 пример сортировал правильно,а в этом каждую 4 строчку дублирует с первой (в названии),
 
Да, косяк. Исправил.
Страницы: 1
Наверх