Есть файл который открывает поочереди все файлы с папки в которой находитса и от туда копирует нужные значения. Проблема заключаетса в том что на шести компютерах всё работает, а на одном нет, при этом появляетса ошибка(картинка с ошибкой прилагаетса). Нажав на Debug указывает на строку 171 [vba]
Код
Workbooks.OpenText fileName:=nameFile
[/vba] на компе на котором не работает стоит 2007 офис, на остальных и 2007 и 2010. поскольку везде работает, а на одном компе нет, я предполагаю что даная проблема заключаетса в настройках, но каких я не знаю. надеюсь вы мне подскажите)
P.S. код писал сам, сильно за его кривизну не ругайте. но советам всегда рад
Есть файл который открывает поочереди все файлы с папки в которой находитса и от туда копирует нужные значения. Проблема заключаетса в том что на шести компютерах всё работает, а на одном нет, при этом появляетса ошибка(картинка с ошибкой прилагаетса). Нажав на Debug указывает на строку 171 [vba]
Код
Workbooks.OpenText fileName:=nameFile
[/vba] на компе на котором не работает стоит 2007 офис, на остальных и 2007 и 2010. поскольку везде работает, а на одном компе нет, я предполагаю что даная проблема заключаетса в настройках, но каких я не знаю. надеюсь вы мне подскажите)
P.S. код писал сам, сильно за его кривизну не ругайте. но советам всегда радslAvIk159
У вас же в событии GetButton_Click выводятся имена файлов, перед их открытием. Посмотрите в окне Immediate на каком именно файле спотыкается. Судя по тому, что ошибка возникает именно на строке открытия, он не может получить доступ к этому файлу (возможно, он спотыкается на каком-то временном файле (с именем, типа: ~$_v.10.xlsm), доступ к которому заблокирован Excel'ем).
Кстати, ваш код открывает не все файлы *.xls*, а через один. Чтобы открывал все - надо так:
[vba]
Код
Private Sub GetButton_Click() Dim pathh As String, fn As String, n As String With ActiveWorkbook n = .Name pathh = .Path End With If Right$(pathh, 1) <> "\" Then pathh = pathh & "\" fn = Dir$(pathh & "*.xls*") Do While Len(fn) If fn <> n Then Debug.Print fn openAddClose pathh & fn End If fn = Dir$ Loop End Sub
[/vba]
[p.s.]Файлы, которые открывает ваш макрос, это книги Excel или текстовые файлы с расширением xls*? (Почему вы открываете их через .OpenText, а не через .Open?)[/p.s.]
У вас же в событии GetButton_Click выводятся имена файлов, перед их открытием. Посмотрите в окне Immediate на каком именно файле спотыкается. Судя по тому, что ошибка возникает именно на строке открытия, он не может получить доступ к этому файлу (возможно, он спотыкается на каком-то временном файле (с именем, типа: ~$_v.10.xlsm), доступ к которому заблокирован Excel'ем).
Кстати, ваш код открывает не все файлы *.xls*, а через один. Чтобы открывал все - надо так:
[vba]
Код
Private Sub GetButton_Click() Dim pathh As String, fn As String, n As String With ActiveWorkbook n = .Name pathh = .Path End With If Right$(pathh, 1) <> "\" Then pathh = pathh & "\" fn = Dir$(pathh & "*.xls*") Do While Len(fn) If fn <> n Then Debug.Print fn openAddClose pathh & fn End If fn = Dir$ Loop End Sub
[/vba]
[p.s.]Файлы, которые открывает ваш макрос, это книги Excel или текстовые файлы с расширением xls*? (Почему вы открываете их через .OpenText, а не через .Open?)[/p.s.]KSV
KSV, благодарю за то что переделали код перебора, он не мой, позаимствовал здесь на форуме Спотыкаетса прям на первом файле, на сколько я понял это настройки доступа для макросов нужно поменять. Поменял все не нерекомендуемые, но ничего не помогло(
KSV, благодарю за то что переделали код перебора, он не мой, позаимствовал здесь на форуме Спотыкаетса прям на первом файле, на сколько я понял это настройки доступа для макросов нужно поменять. Поменял все не нерекомендуемые, но ничего не помогло(slAvIk159
Manyasha, вот файл, правда я с него почти всё удалил, поскольку он очень большой был, но всёравно не открываетса кста-ти, пробовал с пустым файлом, в этом случае открытие происходит KSV, скрин вложил, и там действительно на диске D есть папка с именем D.
Manyasha, вот файл, правда я с него почти всё удалил, поскольку он очень большой был, но всёравно не открываетса кста-ти, пробовал с пустым файлом, в этом случае открытие происходит KSV, скрин вложил, и там действительно на диске D есть папка с именем D.slAvIk159
и там действительно на диске D есть папка с именем D
Понятно, что есть, из ниоткуда он бы этот путь не взял Проверьте, какие права на этот файл (D:\D\sgunderich\Новая папка\буклет\2015\07\24\111\Пакко 134 (24.07-06.08.15)_РЦ_ваг макарони вермiшель.xlsx) у пользователя, под которым вы запускаете макрос? (правый клик мыши на файле, выбираете "Свойства", в открывшемся окне вкладкам"Безопасность", вверху выделите пользователя, а внизу увидите его права, отмеченные галочками. И убедитесь, что этот файл нормально открывается (не макросом) под этим пользователем. Если с правами все нормально и файл нормально открывается в Excel (например, через Файл - Открыть) под этим пользователем, то переименуйте его в 123.xlsx и попробуйте открыть макросом.
[p.s.]У меня этот файл (__197116__01.06.xlsx) нормально открывается, но падает на др. стоке, т.к. в нем нет листа "Для визначення к-сті розписання", ну и др.[/p.s.]
и там действительно на диске D есть папка с именем D
Понятно, что есть, из ниоткуда он бы этот путь не взял Проверьте, какие права на этот файл (D:\D\sgunderich\Новая папка\буклет\2015\07\24\111\Пакко 134 (24.07-06.08.15)_РЦ_ваг макарони вермiшель.xlsx) у пользователя, под которым вы запускаете макрос? (правый клик мыши на файле, выбираете "Свойства", в открывшемся окне вкладкам"Безопасность", вверху выделите пользователя, а внизу увидите его права, отмеченные галочками. И убедитесь, что этот файл нормально открывается (не макросом) под этим пользователем. Если с правами все нормально и файл нормально открывается в Excel (например, через Файл - Открыть) под этим пользователем, то переименуйте его в 123.xlsx и попробуйте открыть макросом.
[p.s.]У меня этот файл (__197116__01.06.xlsx) нормально открывается, но падает на др. стоке, т.к. в нем нет листа "Для визначення к-сті розписання", ну и др.[/p.s.]KSV
KSV, на права к сожалению посмотреть не могу (походу права на винде урезаны), просто так (не через макрос) файл на компютере открываетса, а переимеовывать я и раньше пробовал, не помогло
[p.s.]так я там чтобы залить файл лист нужный удалил)
KSV, на права к сожалению посмотреть не могу (походу права на винде урезаны), просто так (не через макрос) файл на компютере открываетса, а переимеовывать я и раньше пробовал, не помогло
[p.s.]так я там чтобы залить файл лист нужный удалил)slAvIk159
проблема всё таже, но нашли костыльное решение, если вручную открыть файл с которого данные берутся и сохранить его, то после этого макрос работает всё таки, кто знает, есть более удобное решение этой проблемы?
проблема всё таже, но нашли костыльное решение, если вручную открыть файл с которого данные берутся и сохранить его, то после этого макрос работает всё таки, кто знает, есть более удобное решение этой проблемы?slAvIk159
KSV, файлы присылаются на електроную почту в архиве
Может попробовать поменять настройки экселя? см. скриншоты. Можно еще попробовать открывать файл "ReadOnly" - если в него ненужно ничего вносить.SLAVICK
после распаковки, правый клик на файле, п.м. Свойства, и на вкладке "Общие" нажать кнопку "Разблокировать" [p.s.]хотя, если они передаются в архиве, то поток Zone.Identifier добавляться не должен был...[/p.s.]
после распаковки, правый клик на файле, п.м. Свойства, и на вкладке "Общие" нажать кнопку "Разблокировать" [p.s.]хотя, если они передаются в архиве, то поток Zone.Identifier добавляться не должен был...[/p.s.]KSV