|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.09.2009, 17:44 | #1 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Количествл ссылок
Доброго времени суток!
В некотором диапазоне в ячейках содержатся формулы, ссылки и величины. Необходимо определить, в скольких ячейках присутствует ссылка на конкретный лист. Еще нужно определить – нет ли повторяющихся ссылок (на одни и те же ячейки). Первая часть мне показалась простой, но мой код не сработал??? Код:
Вторую часть легко можно было бы решить через аналог Pascal’евского множества (если такой есть конечно). Вот только я не знаю его синтаксиса. Подскажите, как можно его реализовать в VBA, или как можно это сделать по-другому. |
01.09.2009, 17:56 | #2 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Попробуйте заменить .Cells(i, j) на .Cells(i, j).Formula, если нужно смотреть только в формулах
|
01.09.2009, 20:15 | #3 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Спасибо! Очень помогло.
А может мне еще кто-нибудь помочь, чтобы отследить повторение ссылок??? |
01.09.2009, 21:11 | #4 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Нужно именно отслеживание только ссылок вида Лист!Назв.ячейки?
|
01.09.2009, 22:52 | #5 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Если лист только один, а в одной формуле ссылка только на одну ячейку в нем, можно сделать так: поиск в строках адресов ячеек, затем добавление их в массив, а дальше определение дубликатов.
Парсить строку и получать адрес ячейки можно так: Код:
|
02.09.2009, 05:50 | #6 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Код:
Чем шире угол зрения, тем он тупее.
|
|
03.09.2009, 10:11 | #7 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
Да, именно такие повторения могут быть.
Пусть на листе заполнено всего четыре ячейки: В одной содержится =[Книга1.xls]Лист1!$A$3 во второй =[Книга1.xls]Лист1!$A$4 в третьей =[Книга1.xls]Лист1!$A$4 В четвертой =[Книга1.xls]Лист1!$A$3+[Книга1.xls]Лист1!$A$5 Считаем их: Ссылка на $A$3 встречается только один раз в виде =[Книга1.xls]Лист1!$A$3, а в формулах может встречаться сколько угодно раз, поэтому считаем ее. +1 Ссылка на $A$4 встречается в виде =[Книга1.xls]Лист1!$A$4 дважды, чего быть не должно, поэтому нужно посчитать ее только один раз и отметить цветом. +1 Ссылка на $A$5 не встречается в виде =[Книга1.xls]Лист1!$A$5, но зато есть в формуле, поэтому ее тоже нужно посчтитать.+1 Таким образом я должен получить ответ =3 и пометку, что на А4 есть две ссылки вида =[Книга1.xls]Лист1!$A$4 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Суммирование ссылок | mephist | Microsoft Office Excel | 2 | 30.07.2009 16:50 |
Сумма ссылок | mephist | Microsoft Office Excel | 4 | 24.07.2009 15:44 |
сохранение ссылок в combobox | Denisko | Помощь студентам | 16 | 02.06.2009 18:01 |
Вытаскивание ссылок из текста | jocry | Общие вопросы Delphi | 2 | 10.02.2009 16:51 |