|
|
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
С Новым Годом, Вас, глубокоуважаемые знатоки :-)) Сталкнулся с такой проблемой: Есть файл *.xls, в котором хранится н-ное количество листов пронумерованных типа З_(1), З_(2), ..., З_(n). В каждом листе есть однотипные формулы, ссылающиеся на общий лист в конце книги по строчно, т.е. З_(1) привязана к строке 1 общего листа, З_(2) соответственно ко 2-й строке, и т.д. Дело в том что для различных файлов мне необходимо создавать разное количество листов в книге (от 2 до 40-50 листов). Я правлю ссылки в каждом листе вручную, что естественно отнимает уйму времени. Подскажите, плиз, модно ли как-нибудь делать ссылки в ячейках, привязываясь к номеру листа? Или как по вашему можно мне упростить жизнь. P/S Оговорюсь сразу с инструментарием VBA знаком слабо, и если будете приводить отрывки маркросов, то поподробнее пожалуйста. За ранее спасибо всем кто откликнулся, и еще раз с Новым Годом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2006, 10:50:18 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
В данном вопросе можно обойтись без VBA, например так: =ДВССЫЛ("3_("&СТРОКА()&")!$A$1") формула, если её растянуть в столбце, покажет на общем листе значение ячейки А1 в листах 3_(номер строки)!А1 Переработайте для Вашего конкретного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 21:02:15 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
2 Дмит Спасибо, но мне надо в другую сторону (или я торожу, и не могу сообразить, как с помощью двойной сылки это можно сделать). Мне надо, что бы в созданной копии листа (при копировании листа З_(1) в ту-же книгу, Excel ам присваивает следующий номер З_(2) ) менялась строка ссылок на общий лист. Если точнее, то мне интересно можно ли в формуле использовать номер текущего листа, не конкретного, а текущего, как переменной. Что бы формула "смотрела" на каком листе находится :) В любом формате, я что надо выцарапаю ;) Ваш пример, предпологает ссылки общего листа книги на переменные листы, а мне надо ссылки переменных листов листов на общий. Но, все равно, спасибо, я такой функции не знал :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 13:34:16 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
TachkinВаш пример, предпологает ссылки общего листа книги на переменные листы, а мне надо ссылки переменных листов листов на общий. И что тебе мешает явно указать имя общего листа? Копируй переменные листы сколько влезет - имя общего листа меняться то не будет. Зачем вообще править формулы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 21:22:04 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
Я так понял, что из общего листа извлекаются данный из определённых строк или столбцов, в зависимости от номера листа. Думаю такая функция VBA поможет: Public Function NomerLista() Dim str As String, i As Long str = Application.Caller.Parent.Name 'Имя листа i = InStr(1, str, "(", vbTextCompare) 'поиск открывающейся скобки в имени If i = 0 Then NomerLista = CVErr(xlErrNull) 'возвращение ошибки если скобки не найдены Else: NomerLista = Val(Mid(str, i + 1)) 'извлечение числа из скобок End If Application.Volatile True 'пересчёт функции End Function А дальше сформировать ссылку на ячейку, типа: =ДВССЫЛ("Общий!A" & NomerLista()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:41:23 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
номер XYZ из имени листа типа ABC(XYZ) можно получить так, правда, если нет открывающейся скобки в имени, то ошибка:) =ПОДСТАВИТЬ(ПСТР(ЯЧЕЙКА("filename";$A$1);НАЙТИ("(";ЯЧЕЙКА("filename";$A$1);1)+1;ДЛСТР(ЯЧЕЙКА("filename";$A$1)));")";"") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2006, 08:44:46 |
|
||
|
Коректировка формул по номеру листа
|
|||
|---|---|---|---|
|
#18+
sergeyvg! отлично. Значит можно обойтись и без VBA. У меня правда, работает только с - ЯЧЕЙКА("имяфайла";$A$1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2006, 12:05:09 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33471632&tid=2185386]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 319ms |

| 0 / 0 |
