|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.09.2009, 11:00 | #41 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Спасибо, ваш код действительно работает, я проверил, но пока только на вашем листе, сейчас попробую разобраться с ним и переназначить имена ячеек на своём листе и будет видно Сегодня времени не будет, буду в пятницу в 18:00 здесь, отпишусь обязательно.
|
21.11.2009, 18:40 | #42 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Здравствуйте, приветствую всех! Уважаемый SAS888 я вернулся, давайте продолжим. Задачу пока не решил, но пока пытался её решить, снова возникли вопросы в части этого кода.
Код:
1. Здесь вы описываете выборку из диапазона из идущих подряд столбцов А и B. Как изменится код, если мне нужно будет установить взаимодействие например из столбцов А и С, а столбец B вообще не должен участвовать в расчетах,то есть - его не надо включать в диапазон. 2. Уважаемые программисты объясните пожалуста как работает строчка ниже, в частности, интересует функция Cells(): 2.1 Что означают передаваемые параметры Rows.Count и цифра 2 в заголовке функции? 2.2 Не совсем понятно .End(xlUp) и Value по отдельности что означают и чем являются в заголовке функции Range. Что означает точка? a = Range([A1], Cells(Rows.Count, 2).End(xlUp)).Value Последний раз редактировалось Tidus; 22.11.2009 в 03:07. |
24.11.2009, 06:35 | #43 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Cells(x, y) - ячейка, номер строки которой - x, номер столбца - y.
2. В VBA Excel ячейка имеет "кучу" свойств. Так, в частности, Cells(x, y).Value означает значение ячейки. Cells(x, y).Address - адрес ячейки и т.д. Подробнее читайте в Help-е. 3. Выражение Cells(Rows.Count, 2).End(xlUp) возвращает последнюю заполненную ячейку во 2-м столбце. Это тоже самое, что "вручную" выделить последнюю ячейку в столбце (например, для Excel 2003 это "B65536") и нажать Ctrl+[стрелка вверх]. 4. Таким образом, выражение a = Range([A1], Cells(Rows.Count, 2).End(xlUp)).Value означает: определяем двумерный массив "a" (строка, столбец) и присваиваем ему значения ячеек из диапазона с ячейки "A1" до последней заполненной ячейки в столбце "B". 5. После всего сказанного, думаю, что Вы без труда сами разберетесь в следующем коде. Подразумевается (всвязи с Вашими пожеланиями), что время находится в 1-м столбце, а соответствующие ему значения в 3-м. Второй столбец хоть и входит в массив "a" (условие непрерывности диапазона для формирования массива), но в коде никак не обрабатывается и вообще не используется. Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 24.11.2009 в 06:38. |
24.11.2009, 08:57 | #44 | |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Цитата:
1. А у вас есть Help на русском языке?Поделитесь пожалуйста ссылочкой. 2. А почему вы в заголовок функции передаёте параметр Rows.Count , а не например "единичку" для строки ? Я с Rows.Count не разобрался, что он означает... Последний раз редактировалось Tidus; 24.11.2009 в 09:02. |
|
24.11.2009, 09:09 | #45 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. На русском у меня нет справки. Поищите в I-нете. Наверняка что-нибудь найдете. Да и на нашем форуме есть соответствующие ссылки. Я не буду их за Вас искать.
2. Rows.Count - это константа (не функция), которую Excel хранит в модуле класса, равная максимальному количеству строк на рабочем листе. В применении к вышесказанному, нам нужна именно последняя строка в столбце (Rows.Count), а не первая ("единичка").
Чем шире угол зрения, тем он тупее.
|
26.11.2009, 16:38 | #46 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Вот 1 пример на рисунке, когда из диапазона от А1 до E65536 необходимые данные вставляются в столбец по порядку от I1 до I65536.
1 пример расположения столбцов: Ниже я выделил красным цветом, что требуется поправить в коде, что бы изменить конец диапазона ячеек в двухмерном массиве для 1 примера расположения столбцов на рисунке. 1 пример кода: Код:
Последний раз редактировалось Tidus; 26.11.2009 в 17:43. |
26.11.2009, 17:27 | #47 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Уважаемый SAS888, а что поправить в коде, что бы формировался двумерный массив из B3 до E65536 и вставка начиналась с I5 (рисунок ниже), то есть нужно реализовать код при таком расположении столбцов. Я пытался и так вставлял и эдак, не получается, постоянно вылетает ошибка....
2 пример расположения столбцов: Последний раз редактировалось Tidus; 26.11.2009 в 17:43. |
27.11.2009, 05:10 | #48 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Пример во вложении. Что не понятно - спрашивайте.
Чем шире угол зрения, тем он тупее.
|
27.11.2009, 23:54 | #49 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Здравствуйте SAS888, спасибо за код, представленный ниже в файле test5, который выполнен для 2 примера отображения столбцов в посте #47. Выделил основные изменения, внесенные в код:
2 пример кода: Код:
1. Когда в столбце указывается интервал от 00:00 до 19:00, то этот интервал ваш макрос не учитывает в своих расчётах. Почему так происходит?И как это поправить, ведь время должно лежать в диапазоне от 00:00 до 20:00. 2. А почему вы выбрали именно "E" ,а не цифру 5 например?Имеет ли цифра или буква принципиальное значение? 3. Что такое + 4 ? (Я не нашел отличий в работе кода, если убрать +4) 4. Если мне нужен диапазон времени от 1:10 до 12:15, как правильно его поменять в коде. 5. Перенес ваш код в свой файл, запустил макрос, и у меня вылезла ошибка run time error 13 - type mismatch. С чем это может быть связано? Последний раз редактировалось Tidus; 28.11.2009 в 20:51. |
28.11.2009, 01:13 | #50 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Приветсвую участников обсуждения темы.
возможный вариант решения, конечно требуется "доработка". Евгений. Последний раз редактировалось Teslenko_EA; 28.11.2009 в 01:15. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
5 максимальных значений в сводной таблице в новом Excel | Катик7 | Microsoft Office Excel | 2 | 03.09.2009 17:26 |
Случайный выбор значений из списка | Stoodentka | Microsoft Office Excel | 4 | 14.07.2009 07:56 |
Выбор значений по отдельной группе | michi | SQL, базы данных | 2 | 15.10.2008 22:35 |
Запись файлов в *.тхт с учетом повторяющихся значений | Arteom | Общие вопросы Delphi | 3 | 03.04.2008 17:26 |
выбор значений в цикле | Melok | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 15.12.2007 22:56 |