Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2013, 09:46   #21
Extril
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 33
По умолчанию

Прошу прощения, за свою контуженность, но эта вставка уже есть в макросе. А проблемка почему то возникает при прописывании сетевого пути.
1) Книга с макросом находиться \\nwdata.nw.megafon.ru\DavWWWRoot\s ites\ur_dep\DocLib\
2) Файлы источники находяться
\\nwdata.nw.megafon.ru\DavWWWRoot\s ites\ur_dep\DocLib\W\

При выполнении макроса выскакивает подсветка строки (красным)


Private Sub CommandButton1_Click()
Dim ws As Worksheet, ws1 As Worksheet, i As Integer, j As Integer, k As Integer, p As String, f As String, x, a(), b()
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets("Проверки")
Set fso = CreateObject("Scripting.FileSystemO bject")
Set x = CreateObject("Scripting.Dictionary" )
p = "\\nwdata.nw.megafon.rutes\ur_dep\D ocLib\W\": f = Dir(p & "*.xlsx*"): k = 0
a = ws.Range("D1:D" & ws.Cells(Rows.Count, 4).End(xlUp).Row + 1).Value
For i = 1 To UBound(a, 1)
If Not x.Exists(a(i, 1)) Then x.Add a(i, 1), a(i, 1)
Next
ReDim b(1 To fso.GetFolder(p).Files.Count * 100, 1 To 9) Do While f <> ""
If f <> ThisWorkbook.Name Then
Set ws1 = GetObject(p & f).Worksheets("Проверки")
a = ws1.Range("A1:I100").Value
For i = 1 To UBound(a, 1)
If a(i, 4) <> "" And a(i, 4) <> 0 Then
If Not x.Exists(a(i, 4)) Then
x.Add a(i, 4), a(i, 4)
k = k + 1
For j = 1 To UBound(a, 2): b(k, j) = a(i, j): Next
End If
End If
Next
ws1.Parent.Close (False)
End If
f = Dir
Loop
If k <> 0 Then ws.Cells(ws.Cells(Rows.Count, 4).End(xlUp).Row + 1, 1).Resize(k, 9).Value = b
Set x = Nothing
End Sub
Extril вне форума Ответить с цитированием
Старый 27.11.2013, 10:28   #22
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ещё раз сравнить эту строку с авторским вариантом не пробовали?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.11.2013, 12:04   #23
Extril
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 33
По умолчанию

Вообще прежде чем написать я попробовал и оригинальный вариант, и с учетом изменений в последнем посте. Но ничего не изменилось, блин как то странно, может сетевой путь не принимает из за его длинны
Extril вне форума Ответить с цитированием
Старый 27.11.2013, 13:09   #24
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Может быть что угодно, нужно по месту смотреть.
Ну скопируйте файл поближе, например в D:\TMP\ - если заработает, значит смотрите свой путь.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.11.2013, 15:55   #25
Extril
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 33
По умолчанию

Не могу понять, почему путь C:\Users\dvsundyu\Documents\Temp\Пр имер\ работоспособен, а
\\nwdata.nw.megafon.ru\DavWWWRoot\s ites\ur_dep\DocLib\W\ не хочет работать.
Блин, неужели никак не исправить ситуацию, у меня вся отчетность на сетке выложена для руководства. Помогите пожауйста
Extril вне форума Ответить с цитированием
Старый 27.11.2013, 17:23   #26
Extril
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 33
По умолчанию

После внесения правок и проб и ошибок, макрос останавливается на строке Set ws1 = GetObject(p & f).Worksheets("Проверки")
Extril вне форума Ответить с цитированием
Старый 27.11.2013, 18:50   #27
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте заменить GetObject
на Workbooks.Open

Не уверен, что поможет, - но вдруг...
EducatedFool вне форума Ответить с цитированием
Старый 27.11.2013, 18:56   #28
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да, разок помогло. Я уже тоже начал писать такую подсказку, но оборвал - ведь по логике уже проверили работу с этим файлом, но с другим путём?
Может только путь влиять на то, что будет разница между GetObject и Workbooks.Open?
Может сейчас узнаем?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 28.11.2013, 11:03   #29
Extril
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 33
По умолчанию

Спасибо всем огромное, все заработало )))) Я щаслив как слон
Extril вне форума Ответить с цитированием
Старый 28.11.2013, 11:10   #30
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не узнали...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос аля ВПР для формирования свода из закрытых книг MaxxVer Microsoft Office Excel 15 28.08.2012 12:02
Обьединение листов разных книг. Viktorkv Microsoft Office Excel 9 25.10.2011 21:25
Получение данных из множества закрытых книг книг hardkain Microsoft Office Excel 1 27.09.2011 20:18
Объединение книг и некоторых листов ? vovik07 Microsoft Office Excel 5 20.05.2010 11:52
копирование листов из закрытых книг mephist Microsoft Office Excel 4 10.07.2009 17:18