Sub OtkritVseKnigi() 'Шаг 1:Объявляем переменные Dim MyFiles As String
'Шаг 2: Укажите нужную папку MyFiles = Dir("C:\папка\*.xlsx") Do While MyFiles <> ""
'Шаг 3: Открываем файлы один за другим Workbooks.Open "C:\папка\" & MyFiles
'Код макроса с действиями MsgBox ActiveWorkbook.Name Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False ActiveWorkbook.Close SaveChanges:=True
'Шаг 4: Следующий файл в папке MyFiles = Dir Loop End Sub
[/vba]
этот скрипт открывает и обновляет эксели. Но на каждом экселе в свойствах подключения , далее в строке подключения убран пароль и снята галочка сохранить пароль, это сделано для того, чтобы никакой другой пользователь не обновлял эти эксели, кроме одного человека. Но т.к. экселей много, нужно придумать, чтобы это делал скрипт на VBA, как доработать скрипт чтобы он вставлял нужный пароль , обновлял ,потом убирал пароль и сохранял? И как доработать скрипт, если в одной книге , много листов с разными подключениями?
Добрый день. Есть скрипт:
[vba]
Код
Sub OtkritVseKnigi() 'Шаг 1:Объявляем переменные Dim MyFiles As String
'Шаг 2: Укажите нужную папку MyFiles = Dir("C:\папка\*.xlsx") Do While MyFiles <> ""
'Шаг 3: Открываем файлы один за другим Workbooks.Open "C:\папка\" & MyFiles
'Код макроса с действиями MsgBox ActiveWorkbook.Name Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False ActiveWorkbook.Close SaveChanges:=True
'Шаг 4: Следующий файл в папке MyFiles = Dir Loop End Sub
[/vba]
этот скрипт открывает и обновляет эксели. Но на каждом экселе в свойствах подключения , далее в строке подключения убран пароль и снята галочка сохранить пароль, это сделано для того, чтобы никакой другой пользователь не обновлял эти эксели, кроме одного человека. Но т.к. экселей много, нужно придумать, чтобы это делал скрипт на VBA, как доработать скрипт чтобы он вставлял нужный пароль , обновлял ,потом убирал пароль и сохранял? И как доработать скрипт, если в одной книге , много листов с разными подключениями?Minia13
А не подскажете как в VBA прописать весь connection string? ну т.е. я пропишу свой connection string и макрос будет брать его, вместо того что прописан в подключении.
А не подскажете как в VBA прописать весь connection string? ну т.е. я пропишу свой connection string и макрос будет брать его, вместо того что прописан в подключении.Minia13
как доработать скрипт чтобы он вставлял нужный пароль
Нужно создать список адресов с именем файлов и паролей к ним. После этого написать цикл который: откроит файл - снимет пароль - сделает изменения в файле - установит пароль - закроет файл. Как-то так, если коротко. Для меня, проще написать новый макрос, чем переделывать чужой.
как доработать скрипт чтобы он вставлял нужный пароль
Нужно создать список адресов с именем файлов и паролей к ним. После этого написать цикл который: откроит файл - снимет пароль - сделает изменения в файле - установит пароль - закроет файл. Как-то так, если коротко. Для меня, проще написать новый макрос, чем переделывать чужой.gling
Sub OtkritVseKnigi() 'Шаг 1:Объявляем переменные Dim MyFiles As String Dim sn As String Dim cn As WorkbookConnection Dim ocn As OLEDBConnection
'Шаг 2: Укажите нужную папку MyFiles = Dir("C:\папка\*.xlsx") Do While MyFiles <> ""
'Шаг 3: Открываем файлы один за другим Workbooks.Open "C:\папка\" & MyFiles
'Код макроса с действиями ActiveWorkbook.Close SaveChanges:=True
For Each cn In ActiveWorkbook.Connections Set ocn = cn.OLEDBConnection sn = ocn.Connection With ocn .Connection = .Connection & ";Password=12345" .BackgroundQuery = False .Refresh .Connection = sn End With Next
'Шаг 4: Следующий файл в папке MyFiles = Dir Loop End Sub
[/vba]
Может кому пригодится [vba]
Код
Sub OtkritVseKnigi() 'Шаг 1:Объявляем переменные Dim MyFiles As String Dim sn As String Dim cn As WorkbookConnection Dim ocn As OLEDBConnection
'Шаг 2: Укажите нужную папку MyFiles = Dir("C:\папка\*.xlsx") Do While MyFiles <> ""
'Шаг 3: Открываем файлы один за другим Workbooks.Open "C:\папка\" & MyFiles
'Код макроса с действиями ActiveWorkbook.Close SaveChanges:=True
For Each cn In ActiveWorkbook.Connections Set ocn = cn.OLEDBConnection sn = ocn.Connection With ocn .Connection = .Connection & ";Password=12345" .BackgroundQuery = False .Refresh .Connection = sn End With Next
'Шаг 4: Следующий файл в папке MyFiles = Dir Loop End Sub