|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2013, 17:07 | #1 |
Регистрация: 08.10.2013
Сообщений: 3
|
Помогите с синтаксисом диапазона
Я новичок в vba, нигде не смогла найти готовый ответ на нижеследующий вопрос, поэтому прошу помощи:
У меня есть именованный двумерный диапазон Data, в нем один из столбцов называется Discript. Есть пользовательская функция VisibleCells(rgRange As Range), которая должна определить количество значений в видимых ячейках в столбце Discript. Для возврата значения функции в ячейку пользовалась следующей записью: Range("S2").FormulaR1C1 = "=personal.xlsb!VisibleCells(Da ta[descript])" Сейчас мне нужно только вычислить это значение, что-то типа VisCells=VisibleCells(Data[descript]). Проблема с синтаксисом диапазона. Создавать новый диапазон для столбца descript не хотелось бы. Последний раз редактировалось Alenka546; 08.10.2013 в 17:30. |
08.10.2013, 22:38 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
это такой заголовок столбца, или имя диапазона? Вы бы пример файла прикрепили, - было бы куда проще помочь с кодом... |
|
14.10.2013, 08:44 | #3 | |
Регистрация: 08.10.2013
Сообщений: 3
|
Цитата:
В прикрепленном примере - отчет, который я ежедневно получаю по электронке из филиала. Филиалов несколько - отчетов несколько, определяю их по названию городов. Строк в отчете более 1000, поэтому я его немножко урезала. Отчет фильтрую по определенным критериям. Оставшееся количество строк я заношу в книгу со сводным отчетом по всем филиалам. По каждому филиалу я веду отдельную книгу филиал.xlsx, в который переношу ежедневный отчет, присвоив имени листа сегодняшнюю дату (архив отчетов). В Модуле Листа1 в приложенном примере я скопировала функцию, которой я пользовалась для определения количества строк в отчете, и процедуру, и т.к. на тот момент переменные были для меня чем-то не понятным, то пользуясь макрорекодером, я вставляла формулу в ячейках. Range("S2").FormulaR1C1 = "=personal.xlsb!VisibleCells(Da ta[descript])". Т.о.формула вводится в ячейку, и диапазоном в формуле является один из столбцов именованного диапазона (в данном случае - descript), которому имя не присвоено! В данном случае мне все равно какой это столбец - мне нужно количество ячеек, и я понимаю, что нужно считать не так. Но не судите строго, т.к. это была моя первая заработавшая процедура. Недавно решила сделать все красиво, с переменными и прочим, но в основе решила оставить ту же функцию, которой пользовалась раньше. И тут поняла, что вставленная в ячейку формула по названию столбца в имен.диапазоне Data, определяет массив ячеек в пределах этого столбца. А когда я прописываю эту функцию не как формулу в ячейке, а как формулу для вычисления переменной, это не работает - нужно присваивать имя диапазону в столбце descript. У меня весь этот код лежит в личной книге макросов. |
|
14.10.2013, 10:25 | #4 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
Код:
на неконкретные вопросы даю неконкретные ответы ...
|
14.10.2013, 12:16 | #5 |
Регистрация: 08.10.2013
Сообщений: 3
|
Step_UA, спасибо, то что надо!)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблемы с heredoc синтаксисом | Luca Brasi | PHP | 2 | 08.11.2012 00:54 |
проблема с синтаксисом types | Молоток | Общие вопросы Delphi | 2 | 11.04.2011 13:36 |
Проблема с синтаксисом? | Geddar | PHP | 1 | 30.06.2008 16:44 |
Казус с синтаксисом???... | Sota | Общие вопросы C/C++ | 6 | 17.07.2007 19:15 |