Автоматический проход по Листам

Автор 0mega, 11.12.2014, 07:55

« назад - далее »

0mega

Доброго времени суток
2003
sub no

есть книга с N-количеством Листов
Надо на каком-то одном листе собрать значения одноименных адресов со всех Листов
пример
A1=Лист1!D7
A2=Лист2!D7
A3=Лист3!D7
...
An=ЛистN!D7

cheshiki1

Sub VVV()
Dim i&, R&
    Application.ScreenUpdating = False 'отключаем обновление экрана
For i = 1 To Sheets.Count 'цик по листам книги
R = Sheets("L").Cells(Rows.Count, 1).End(xlUp).Row + 1 'определяем последнюю заполненную ячейку в первом столбце
   If Sheets(i).Name <> "L" Then 'если название листе "L" то пропускаем и идем к следующему листу
   'Sheets("L").Cells(R, 1) = Sheets(i).Range("D7")'вставляет только значение
   Sheets("L").Cells(R, 1).FormulaLocal = "=" & Sheets(i).Name & "!D7" 'вставляем формулу
   End If
Next
Application.ScreenUpdating = True 'включаем обновление экрана
End Sub

ShAM

Если в 1-й столбец названия листов поставить, то можно ДВССЫЛ() использовать.

0mega

ShAM, спасибо

Интересное решение.
Уточняющий вопрос
=ДВССЫЛ("'"&A5&"'!D7")
Какое назначение апострофа (отмечен красным) и зачем его брать в кавычки (ведь это уже текст, а не число)?

vikttur

#4
ЦитироватьКакое назначение апострофа (отмечен красным)
Ссылка на лист (прошу заметить - апостроф с двух сторон ссылки)
Обрамление апострофами нужно, если имя листа состоит из нескольких слов , т.е. содержит пробел (иначе будет ошибка). Если уверены, что все листы именуются без использования пробела, апострофы в формулу можно не вписывать.
Сами проверьте. Два листа: "Лист1" и "Лист 1". В третьем впишите простые формулы со ссылками на ячейки этих листов. Посмотрите имена листов в формулах.
Цитироватьзачем его брать в кавычки (ведь это уже текст, а не число)
Именно потому и надо в кавычки - чтобы показать, что это текст.
=текст
="текст"

Проверьте эти формулы на листе.

Serge 007

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

0mega

#6
ЦитироватьОбрамление апострофами нужно, если имя листа состоит из нескольких слов , т.е. содержит пробел ...
vikttur, благодарю. Понятно и доходчиво

cheshiki1

off
vikttur, чего то вы про летучесть ДВССЫЛ ничего не сказали. ;)

0mega

cheshiki1,
Лично мне совершенно безразлично кто предоставит информацию.
Охотно ознакомлюсь с Вашей  версией

Serge 007

Цитата: cheshiki1 от 13.12.2014, 11:42
...про летучесть ДВССЫЛ ничего не сказали...
В данном случае альтернативного решения нет, так что придется пренебречь волатильностью ДВССЫЛ :)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

vikttur

#10
0mega, летучие функции - те, которые пересчитываются при любых изменениях на листе. Таких немного, ДВССЫЛ из их числа.
Но, как правильно заметил Сергей, формульной альтернативы в данном случае нет.
Поэтому или смиритесь с пересчетом (открыли книгу - получили изменение), или переходите на макрос.

cheshiki1:P   :D

0mega

#11
Offtop
Цитата: vikttur от 13.12.2014, 12:10
... или переходите на макрос.
Анекдот в тему
Сара возвращается домой.
- Абрам, я сегодня была у врача
- и что он тебе сказал ?
- он сказал что из-за лишнего веса у меня могут развиться гипертония и сахарный диабет
- и что теперь делать ?
- Врач сказал что есть 2 способа  лечения
- какие ?
- первый способ - это 1 раз в неделю делать пробежки до Тулы и обратно
- а второй ?
- надо заниматься сексом каждый день
- слушай , Сара! Я совершенно не возражаю против Тулы. возьми да сбегай

P.S.
я согласен смириться с пересчетом
благодарю за разъяснение

RAN

0mega, в данном случае все наоборот.
Либо бегать до Тулы каждый час, либо секс раз в полгода.  ;D

0mega

RAN,
(по В.В. Маяковскому)
Формулы - это хорошо,
  но макросы лучше.
В макрописцы я  б  пошел,
  пусть меня научат

RAN

#14
0mega, Дата регистрации: 10.06.2010, 23:22:44
За это время можно медведя на велосипеде кататься научить, даже если у него желания нет.  ;D
С человеком - сложнее.