powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с файлами в Эксель
25 сообщений из 25, страница 1 из 1
Работа с файлами в Эксель
    #37333503
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна помощь!!!
Есть 3 книги одинаковой структуры которые расположены по адресам ("C:\Информация\***\книга_***.xls"), где *** идентификатор для книги, например название филиала (DNI, DON, KIE). Информация в этих книгах расположена на перовм листе. 1-я строка - "шапка" таблицы. Данные содержатся со 2 до n строки ( где n+1 строка - пустая)
Необходимо автоматически "затянуть" информацию из этих книг в консолидированный файл такой же структуры. Информацию из книг необходимо разместить последовательно одна за другой.
Спасибки.
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37333506
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VikVikVikНужна помощь!!!
Есть 3 книги одинаковой структуры которые расположены по адресам ("C:\Информация\***\книга_***.xls"), где *** идентификатор для книги, например название филиала (DNI, DON, KIE). Информация в этих книгах расположена на перовм листе. 1-я строка - "шапка" таблицы. Данные содержатся со 2 до n строки ( где n+1 строка - пустая)
Необходимо автоматически "затянуть" информацию из этих книг в консолидированный файл такой же структуры. Информацию из книг необходимо разместить последовательно одна за другой.
Спасибки.

Нужно чтоли делать запросы?
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37333518
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может у кого есть похожые исходники?
Так что бы в один файл стягивалось с трех.Причем инфа вставлялась по порядку.
Спасибо
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37333587
Bakhodir Radjabov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Visual Basic for Application
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37333602
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bakhodir Radjabov,

Это понятно :)
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37333628
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VikVikVik,

Здесь и здесь .
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37335837
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Помогите написать цикл вайл или что-то другое, для того что бы вся инфа заполнялась по очереди: сначала с первого файла в столбик, потом со второго, потом с третего.
While i=1 to n


End While
для первого, но не все работает так как открывается только мои документы, какой бы я путь не ставила

Sub Get_Value_From_Close_Book_Formula()
Dim sPath As String, sFile As String, sShName As String
sPath = "C:\My Documents\2"
sFile = "Книга2.xls"
sShName = "Лист1"
With Range("A2:A7")
.Formula = "='" & sPath & "[" & sFile & "]" & sShName & "'!" & "A2:A7"
.Value = .Value
End With
End Sub


Как это все добро слепить, подскажите.
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37335955
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Может кто подскажет...
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37336004
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VikVikVikМожет кто подскажет... Может, если вопрос будет внятно сформулирован
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37336097
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы, наверное, опять скажете, что у вас в Excel 2007 не работает, но всё же посмотрите.
Извините, что не посмотрел ваш пример - лень было.
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37336771
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cursky, спасибо большое.
да только действительно соеденеие не работает. ((((
nnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & strFile$ & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
Это для одного файла, для первого, а как для остальных писать? то есть это оно открывает и копирует с одного файла. Потом оно должно открывать и копирывать со второго файла внизу, под тем что скопировалось в первом. и аналогично с третим.
может подскажите, что менять надо?
осталось еще две книги. Как с ними вы справлялись? там в коде ничего нету поповоду копирования с остальных...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Option Explicit

Sub ImportData()
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim strSQL$, strCnnString$, strFile$, Sheet$, strMask$, strPath As String
    Dim intRngRw%, intRngRw2%, i%

'литс тоже указала свой
    Sheet$ = "Лист1"
    i = Application.WorksheetFunction.CountA(Sheets(Sheet$).Columns( 1 )) +  1 

'здесь путь поменяла
    strPath = "D:\Documents and Settings\Administrator\My Documents\2"
    strMask$ = "Книга2*.xls" ' название первое из книг которое надо скопировать
    strFile$ = Dir(strPath & strMask$)
    Do While strFile$ <> ""
    Debug.Print strFile$
        intRngRw =  1 
        intRngRw2 =  2 
        Do
            Set cnn = New ADODB.Connection
            Set rst = New ADODB.Recordset
            
            strSQL = "SELECT * FROM" & "[" & Sheet & "$A" & intRngRw & ":" & "A" & intRngRw2 & "]" ' у меня только первый столбец, поэтому заменила на А

            strCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & strFile$ & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""   ' не меняла ничего
            'strCnnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & strFile$ &  ";" & "Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"""

            cnn.Open strCnnString
            rst.Open strSQL, cnn, adOpenStatic, adLockReadOnly
         

            If rst.Fields( 0 ) = "" Then Exit Do
            Cells(i,  1 ).CopyFromRecordset rst
            intRngRw = intRngRw +  1 
            intRngRw2 = intRngRw2 +  1 
            i = i +  1 
            rst.Close
            cnn.Close
            Set cnn = Nothing
            Set rst = Nothing
        Loop
        strFile$ = Dir
    Loop
End Sub

...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37336781
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37336987
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cursky,
Помогите пожалуйста, а то что то никак...(((
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37337772
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VikVikVik,
Как это нет? А Loop?
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37337779
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на 2000 пример Cursky отработал отлично, только в коде путь поменял (на C:\temp\Cursky\)
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37337782
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И вот причина - Вы путь без последнего слэша прописали.
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37338093
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Dim cnn As ADODB.Connection
пишет ошибку: User-defined type not defined
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37338166
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

слеш тоже пробывала ставить не помогло
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37338518
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VikVikVik, эта библиотека есть?
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340062
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Где поключать? У меня 2003 офис.
Не могу найти на панели.
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340079
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Подскажите, где это окно подключается?
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340100
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Спасибо все нашла и библиотеку. Подскажите, что здесь не правильно пишу.

Sub Zapusk()

ImportData_1.Run
ImportData_2.Run
ImportData_3.Run

End Sub
где
ImportData_1 -это мои функции
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340104
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VikVikVikHugo121,

Подскажите, где это окно подключается?
Я вам уже показывал, как подключается. Запустите один раз процедуру для подключения.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub AddReferences()
'---------------------------------------------------------------------------------------
' Procedure : AddReferences
' Purpose   : Подключаем ссылку на ADO (Та, что в меню Tools->References)
'---------------------------------------------------------------------------------------
    On Error Resume Next
    'Name:   ADODB
    'Description:   Microsoft ActiveX Data Objects 2.8 Library
    ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado15.dll")
    ThisWorkbook.VBProject.References.AddFromGuid GUID:="{2A75196C-D9EB-4129-B803-931327F72D5C}", Major:= 2 , Minor:= 8 
End Sub
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340141
VikVikVik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cursky,

Cursky,


Все получилось. Простите не буду больше задавать глупых вопросов.
Подскажите как написать макрос, который вызывал по очереди все 3 функции. К примеру одну показываю


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Sub ImportData_1()
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim strSQL$, strCnnString$, strFile$, Sheet$, strMask$, strPath As String
    Dim intRngRw%, intRngRw2%, i%

    Sheet$ = "Ëèñò1"
    i = Application.WorksheetFunction.CountA(Sheets(Sheet$).Columns( 1 )) +  1 

'çäåñü óêàçàí ïóòü
    strPath = "D:\Documents and Settings\Administrator\My Documents\2\"
    strMask$ = "Êíèãà2*.xls" 
    strFile$ = Dir(strPath & strMask$)
    Do While strFile$ <> ""
    Debug.Print strFile$
        intRngRw =  1 
        intRngRw2 =  2 
        Do
            Set cnn = New ADODB.Connection
            Set rst = New ADODB.Recordset
            
            strSQL = "SELECT * FROM" & "[" & Sheet & "$A" & intRngRw & ":" & "A" & intRngRw2 & "]" 
            strCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & strFile$ & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
            'strCnnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & strFile$ &  ";" & "Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"""

            cnn.Open strCnnString
            rst.Open strSQL, cnn, adOpenStatic, adLockReadOnly
         

            If rst.Fields( 0 ) = "" Then Exit Do
            Cells(i,  1 ).CopyFromRecordset rst
            intRngRw = intRngRw +  1 
            intRngRw2 = intRngRw2 +  1 
            i = i +  1 
            rst.Close
            cnn.Close
            Set cnn = Nothing
            Set rst = Nothing
        Loop
        strFile$ = Dir
    Loop
End Sub




Вот так не работает: (

Sub Fun_1()
ImportData_1.run
ImportData_2.run
ImportData_3.run
End sub
...
Рейтинг: 0 / 0
Работа с файлами в Эксель
    #37340276
Cursky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VikVikVik,
Охохох... вы совсем чайница
Откуда у вас в процедуре ImportData_1 взялся метод run ?
Если вам надо вызвать процедуру, то просто пишете её название без всяких run .
Или то же самое, только более наглядно: Call ImportData_1 .
Код: plaintext
1.
2.
3.
4.
5.
Sub Fun_1()
    ImportData_1
    'или так
    Call ImportData_2
    Call ImportData_3
End Sub
Теперь ещё вопрос: зачем вам 3 одинаковые процедуры? Скорее всего(с вашего позволения я потренирую телепатию) они отличаются только именами файлов, из которых они импортируют данные.
Если так, то оставьте одну процедуру, которая принимает имя файла, как аргумент(он в скобках):
Код: plaintext
Sub ImportData(strFile$)
И в своём макросе вызывайте эту процедуру 3 раза, только с разными аргументами - именами файлов.
Код: plaintext
1.
2.
3.
4.
Sub Fun_1()
    Call ImportData("C:\File1.xls")
    Call ImportData("D:\Мои документы\File2.xls")
    Call ImportData("D:\Работа\File138.xls")
End Sub
Да... и не забывайте переключать раскладку на клавиатуре, перед копированием программного кода, чтобы не было вот таких
крюказябриков 'çäåñü óêàçàí ïóòü
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа с файлами в Эксель
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]