Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 12:10   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение.
Вложения
Тип файла: rar Book1_2.rar (19.7 Кб, 11 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.04.2009, 12:11   #12
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

IgorGO, спасибо, сейчас буду переводить формулы с русского на английский
ruavia3 вне форума Ответить с цитированием
Старый 22.04.2009, 12:47   #13
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

SAS888, а можно диапазон дат [B17:B37], заменить на диапазон от B17 до последней заполненной ячейки(или вчерашнего дня,т.е. Today()-1 ?
ruavia3 вне форума Ответить с цитированием
Старый 22.04.2009, 13:20   #14
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Что не так?
Вложения
Тип файла: rar Book1_3.rar (20.7 Кб, 9 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.04.2009, 13:29   #15
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Вау)
Могли бы дать комментарии?

With [B17:F48] - почему именно F48
r = Date - [B17] + 16 - почему 16 ?

А With Sheets("Sheet1") - можно заменить на "Sheet1" другой книги.xls?
ruavia3 вне форума Ответить с цитированием
Старый 22.04.2009, 13:57   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Перед началом работы, макрос очищает ячейки в диапазоне "B17:F48" от данных, заливки и нарисованных ранее границ. 48 - потому, что максимально возможное количество строк в таблице, начиная со строки 17 плюс 31 (максимально возможное количество дней в месяце).
2. r = Date - [B17] + 16 Определяем строку, до которой нужно "растянуть" дату из ячейки "B17". Сегодняшняя дата минус значение ячейки "B17" - это количество дней с 1 по сегодняшний. Соответственно, чтобы получить вчерашний, нужно отнять 1. А чтобы получить абсолютный номер строки, нужно прибавить 17 (т.к. это первая строка диапазона для вставки данных). Итого: r = Date - [B17] - 1 + 17, т.е. r = Date - [B17] + 16.
3. Если книга открыта, то строку
Код:
With Sheets("Sheet1")
нужно заменить на строку, содержащую ссылку на книгу. Например:
Код:
With Workbooks("Книга1.xls").Sheets("Sheet1")
Если же книга не открыта, то нужно либо макросом предварительно проверить и, если нужно, открыть ее, либо, если известны путь, имя книги, имя листа в ней и диапазон с данными, то получить данные из этой книги не открывая ее.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.04.2009, 15:26   #17
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

В моем случае даты не ограничены месяцем. Зафиксирована только ячейка B17 как первая дата.
ruavia3 вне форума Ответить с цитированием
Старый 22.04.2009, 15:37   #18
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
спасибо, сейчас буду переводить формулы с русского на английский
а не надо ничего переводить, в колонке В смотрите английские названия функций, они уже там...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.04.2009, 16:11   #19
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

IgorGO, спасиб. Я сразу не понял, что Ф - вставлена как переменная.
в Ф вставлен vlookup, который ищет определенную дату (значение в ячейке F2 на определенных листах, задаваемых optionbutton). В этом случае все идеально. А если столбец с датами каждый день растет и значения нужно выводить на каждое число.
Другими словами, нужна не одна формула, а столько сколько дат в столбце. Напротив каждой даты нужны значения, которые подтягиваются из других листов.

Последний раз редактировалось ruavia3; 22.04.2009 в 16:32.
ruavia3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно сократить код jocry Общие вопросы Delphi 2 20.01.2009 08:35
Как сократить время? МАКРОС! jungo Microsoft Office Excel 17 01.05.2008 12:13
как вычислить формулу? Sergeus Microsoft Office Excel 2 26.02.2008 23:56
Как переделать формулу mik Microsoft Office Excel 1 27.10.2007 19:07