|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.09.2012, 22:35 | #1 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Ошибка в функции WorksheetFunction
Здравствуйте Уважаемые программисты!
Подскажите пожалуйста, есть макрос, который должен выводить число уникальных значений в диапазоне A1:A10, но он у меня не работает. Подскажите где может быть ошибка в формуле? Sub проба() Dim a a = Application.WorksheetFunction.Sum(1 / Application.WorksheetFunction.Count If([A1:A10], [A1:A10])) MsgBox a End Sub Спасибо. |
18.09.2012, 22:46 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Ошибка в попытке разделить 1 на массив в VBA. В формуле листа работает:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Последний раз редактировалось Казанский; 19.09.2012 в 11:40. |
19.09.2012, 07:30 | #3 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Спасибо Вам большое!
|
19.09.2012, 09:41 | #4 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
У меня появился еще один вопрос, подскажите пожалуйста, если диапазон задан не конкретно, а в виде "ActiveSheet.Range("B6", Cells(Rows.Count, "B").End(xlUp))" (т.е. диапазон начинающийся от ячейки B6 и до последней заполненной ячейки в столбце B), как исправить мой макрос:
Sub проба() Dim a,b Set b = ActiveSheet.Range("B6", Cells(Rows.Count, "B").End(xlUp)) a = Evaluate("SUM(1/COUNTIF(b,b))") MsgBox a End Sub Спасибо. |
19.09.2012, 10:16 | #5 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
19.09.2012, 10:34 | #6 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Спасибо большое! Все получилось. Вот итоговый код:
Sub проба() Dim a, b Set b = ActiveSheet.Range("B6", Cells(Rows.Count, "B").End(xlUp)) a = Evaluate("SUM(1/COUNTIF(" & b.Address & "," & b.Address & "))") MsgBox a End Sub |
19.09.2012, 11:49 | #7 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Как выяснили недавно, метод Evaluate чувствителен к стилю ссылок. Т.е. если установить стиль ссылок R1C1, то этот макрос не сработает. Следует формировать адрес с учетом стиля ссылок:
Код:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
19.09.2012, 12:56 | #8 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Спасибо большое за ценную информацию!
|
20.09.2012, 12:50 | #9 | |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Цитата:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WorksheetFunction.AveDev | Alla_s | Microsoft Office Excel | 1 | 25.05.2012 20:15 |
Ошибка в функции. | stas45rus | Помощь студентам | 0 | 13.01.2012 14:39 |
ошибка в функции | Katus | Общие вопросы Delphi | 10 | 10.12.2011 05:43 |
Ошибка при использовании WorksheetFunction.VLookup | imagenable@mail.ru | Microsoft Office Excel | 2 | 26.02.2010 12:04 |
Проблема Application.WorksheetFunction.Match | nemoomen | Microsoft Office Excel | 1 | 01.04.2009 03:12 |