Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Пользовательская функция consol() Добавлено: 14.06.06 13:40  

Автор вопроса:  SvetlanaL | ICQ: 229-356-346 
Есть функция,вызывая которую в ячейки долджны сконсолидироваться данные из других книг, с совпадающим именем листа и адресом ячейки. Например, существует книга "эталон" и в каких-то ячейках вызывается функция 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
Автор ответа:
 SvetlanaL



ICQ: 229-356-346 

Вопросов: 8
Ответов: 20
 Профиль | | #2 Добавлено: 15.06.06 07:58
Не поняла.

Ответить

Номер ответа: 3
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #3 Добавлено: 15.06.06 09:45
Бывает...

Ответить

Номер ответа: 4
Автор ответа:
 SvetlanaL



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
Автор ответа:
 SvetlanaL



ICQ: 229-356-346 

Вопросов: 8
Ответов: 20
 Профиль | | #7 Добавлено: 19.06.06 20:13
Но почему? Мне очень был нужен твой ответ. Я изо всех сил формулировала вопрос и отправила на e-mail, а не на форум. Может он не дошел. Но это работа, а мне нужен результат. Поэтому пришлось идти другим путем. Очень кривым, а тот казался таким красивым. Опыт у меня ещё не большой, все методом научного тыка - отсюда и странности...

Ответить

Номер ответа: 8
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #8 Добавлено: 20.06.06 08:33
Письмо действительно не дошло. Ну тогда если что обращайся.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам