Страница: 1 |
Вопрос: Пользовательская функция consol() | Добавлено: 14.06.06 13:40 |
Автор вопроса: ![]() |
Есть функция,вызывая которую в ячейки долджны сконсолидироваться данные из других книг, с совпадающим именем листа и адресом ячейки. Например, существует книга "эталон" и в каких-то ячейках вызывается функция consol.
Function consol() Dim mFileSystemObject As FileSystemObject, mFolder As Folder, mFiles As Files, mFile As File Dim mConnection As ADODB.Connection, mRecordset As ADODB.Recordset, mConnectionString As String Dim InPath As String Dim StrokaKonsolidasia As String Dim str1 As String Set mFileSystemObject = New FileSystemObject Set mConnection = New ADODB.Connection InPath = "c:\svod1" Set mFolder = mFileSystemObject.GetFolder(InPath) Set mFiles = mFolder.Files str1 = ActiveCell.Address InCellAdr = DelStr(str1, "$") For Each mFile In mFiles mConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & mFile.path mConnection.Open mConnectionString Set mRecordset = mConnection.OpenSchema(adSchemaTables) If Len(StrokaKonsolidasia) > 0 Then StrokaKonsolidasia = StrokaKonsolidasia & "," & _ "'" & mFile.ParentFolder & "\[" & mFile.Name & "]" & ActiveSheet.Name & _ "'!InCellAdr" Else StrokaKonsolidasia = StrokaKonsolidasia & _ "'" & mFile.ParentFolder & "\[" & mFile.Name & "]" & ActiveSheet.Name & _ "'!InCellAdr" End If mConnection.Close Next mFile Set mConnection = Nothing Set mFileSystemObject = Nothing Selection.Consolidate Sources:=Split(StrokaKonsolidasia, ","), Function:=xlSum consol = ? НЕ ЗНАЮ ЧТО ДЕЛАТЬ ДАЛЬШЕ!!! End Function |
Ответы | Всего ответов: 8 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #1 | Добавлено: 14.06.06 15:09 |
и в каких-то ячейках вызывается функция consol. Круто - я бы эту функцию не вызывал при пересчете книги ... я бы ваще тогда пересчет отключил!!!
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 229-356-346 Вопросов: 8 Ответов: 20 |
Профиль | Цитата | #2 | Добавлено: 15.06.06 07:58 |
Не поняла. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #3 | Добавлено: 15.06.06 09:45 |
Бывает... |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 229-356-346 Вопросов: 8 Ответов: 20 |
Профиль | Цитата | #4 | Добавлено: 15.06.06 09:51 |
В смысле жить и работать этой функции не судьба? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #5 | Добавлено: 15.06.06 10:14 |
Да судьба конечно! Все можно придумать.
Увидел полностью свой текст и в завершении волшебный апендикс типа: consol = ? НЕ ЗНАЮ ЧТО ДЕЛАТЬ ДАЛЬШЕ!!!
Я тоже незнаю... я вообще впринципе не понимаю, что ты хошешь, чтобы возвращала Function consol() Какое значение....сумма что ли? по всем листам. Может ты задачу попонятнее изложишь?...какая конкретно конечная цель?
Так как консолидацию мы с тобой сделали - то у тебя выводится табличка. Ты хочешь при переборе файликов выбирать только определенные и с определенными листами? Вообще пиши поподробнее - так как реально непонятно. Можешь вылать на мыло файл с примером. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #6 | Добавлено: 19.06.06 19:46 |
Странная Вы SvetlanaL - зачем задавать вопросы, если не важны ответы... В каждом вопросе Вы странная... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ICQ: 229-356-346 Вопросов: 8 Ответов: 20 |
Профиль | Цитата | #7 | Добавлено: 19.06.06 20:13 |
Но почему? Мне очень был нужен твой ответ. Я изо всех сил формулировала вопрос и отправила на e-mail, а не на форум. Может он не дошел. Но это работа, а мне нужен результат. Поэтому пришлось идти другим путем. Очень кривым, а тот казался таким красивым. Опыт у меня ещё не большой, все методом научного тыка - отсюда и странности... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() Вопросов: 7 Ответов: 188 |
Профиль | Цитата | #8 | Добавлено: 20.06.06 08:33 |
Письмо действительно не дошло. Ну тогда если что обращайся. |
Страница: 1 |
|