Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Несовместимость макроса с 2016 версией - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Несовместимость макроса с 2016 версией
pechkin Дата: Воскресенье, 04.08.2019, 09:29 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте!В чем проблема несовместимости макроса 2003 и 20016 версии?
На флэшке и на диске есть одинаковый рабочий файл в папке. В зависимости от того с каким файлом сейчас идет работа, при закрытии его макрос должен проверить наличие флэшки и сохранить этот файл либо на флэшку (если был открыт файл на диске), либо на диск.
Этот макрос отлично работает в 2003 версии, а 2016 выдает ошибку и подсвечивает-left

[vba]
Код
Sub Проверка_на_флэшку()

'Stop
Dim x As String, y As String, z As String, flash As String, a As String

x = "F:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls" 'Путь и имя файла
y = "G:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
z = "H:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
a = Left(ActiveWorkbook.Path, 3) 'Буква диска рабочего открытого файла
          If Dir(x) <> "" Then flash = Left(x, 3) 'Если файл на флэшке найден то переменной присваивается буква диска
          If Dir(y) <> "" Then flash = Left(y, 3)
          If Dir(z) <> "" Then flash = Left(z, 3)
'Если флэшка есть
If flash <> "" Then
'Если открыт файл с флэшки
If a = flash Then
If MsgBox("ШЕФ! ВЫ ХОТИТЕ СОХРАНИТЬ ЭТОТ ФАЙЛ НА ДИСК?", vbYesNo) = vbYes Then
ActiveWorkbook.SaveCopyAs "C:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ1.xls"
End If
End If
'Если открыт файл на диске
If a = "C:\" Then
If MsgBox("ШЕФ! ВЫ ХОТИТЕ СОХРАНИТЬ ЭТОТ ФАЙЛ НА ФЛЭШКУ?", vbYesNo) = vbYes Then
ActiveWorkbook.SaveCopyAs flash & "РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ1.xls"
End If
End If
End If

End Sub
[/vba]
Файл не прикладываю, т.к. ,думаю, что в нем нет необходимости. Спасибо!
 
Ответить
СообщениеЗдравствуйте!В чем проблема несовместимости макроса 2003 и 20016 версии?
На флэшке и на диске есть одинаковый рабочий файл в папке. В зависимости от того с каким файлом сейчас идет работа, при закрытии его макрос должен проверить наличие флэшки и сохранить этот файл либо на флэшку (если был открыт файл на диске), либо на диск.
Этот макрос отлично работает в 2003 версии, а 2016 выдает ошибку и подсвечивает-left

[vba]
Код
Sub Проверка_на_флэшку()

'Stop
Dim x As String, y As String, z As String, flash As String, a As String

x = "F:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls" 'Путь и имя файла
y = "G:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
z = "H:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
a = Left(ActiveWorkbook.Path, 3) 'Буква диска рабочего открытого файла
          If Dir(x) <> "" Then flash = Left(x, 3) 'Если файл на флэшке найден то переменной присваивается буква диска
          If Dir(y) <> "" Then flash = Left(y, 3)
          If Dir(z) <> "" Then flash = Left(z, 3)
'Если флэшка есть
If flash <> "" Then
'Если открыт файл с флэшки
If a = flash Then
If MsgBox("ШЕФ! ВЫ ХОТИТЕ СОХРАНИТЬ ЭТОТ ФАЙЛ НА ДИСК?", vbYesNo) = vbYes Then
ActiveWorkbook.SaveCopyAs "C:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ1.xls"
End If
End If
'Если открыт файл на диске
If a = "C:\" Then
If MsgBox("ШЕФ! ВЫ ХОТИТЕ СОХРАНИТЬ ЭТОТ ФАЙЛ НА ФЛЭШКУ?", vbYesNo) = vbYes Then
ActiveWorkbook.SaveCopyAs flash & "РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ1.xls"
End If
End If
End If

End Sub
[/vba]
Файл не прикладываю, т.к. ,думаю, что в нем нет необходимости. Спасибо!

Автор - pechkin
Дата добавления - 04.08.2019 в 09:29
doober Дата: Воскресенье, 04.08.2019, 10:22 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
В какой строке кода left подсвечивает.На лицо конфликт в самом коде.Вы же весь код не показали.
Обойти можно так.[vba]
Код
    Set FSO = CreateObject("Scripting.FileSystemObject")
    a = FSO.GetDriveName(ActiveWorkbook.Path)
    x = "F:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    y = "G:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    Z = "H:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    flash = ""
    If FSO.FileExists(x) Then
        flash = FSO.GetDriveName(x)
    End If
    If FSO.FileExists(y) Then
        flash = FSO.GetDriveName(y)
    End If
    If FSO.FileExists(Z) Then
        flash = FSO.GetDriveName(Z)
    End If
    Set FSO = Nothing
    
    
[/vba]




Сообщение отредактировал doober - Воскресенье, 04.08.2019, 10:22
 
Ответить
СообщениеЗдравствуйте.
В какой строке кода left подсвечивает.На лицо конфликт в самом коде.Вы же весь код не показали.
Обойти можно так.[vba]
Код
    Set FSO = CreateObject("Scripting.FileSystemObject")
    a = FSO.GetDriveName(ActiveWorkbook.Path)
    x = "F:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    y = "G:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    Z = "H:\РАСЧЕТ ТЕПЛОВОЙ ЭНЕРГИИ.xls"
    flash = ""
    If FSO.FileExists(x) Then
        flash = FSO.GetDriveName(x)
    End If
    If FSO.FileExists(y) Then
        flash = FSO.GetDriveName(y)
    End If
    If FSO.FileExists(Z) Then
        flash = FSO.GetDriveName(Z)
    End If
    Set FSO = Nothing
    
    
[/vba]

Автор - doober
Дата добавления - 04.08.2019 в 10:22
pechkin Дата: Воскресенье, 04.08.2019, 10:39 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
Спасибо за ответ! Это весь код. Подсвечивает сразу a=left и надпись: Can't find progect or library.
 
Ответить
СообщениеСпасибо за ответ! Это весь код. Подсвечивает сразу a=left и надпись: Can't find progect or library.

Автор - pechkin
Дата добавления - 04.08.2019 в 10:39
doober Дата: Воскресенье, 04.08.2019, 12:39 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
Тогда смотрите Tools-References
Смотрите на какие библы ругается


 
Ответить
СообщениеТогда смотрите Tools-References
Смотрите на какие библы ругается

Автор - doober
Дата добавления - 04.08.2019 в 12:39
pechkin Дата: Воскресенье, 04.08.2019, 12:52 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
При выходе ошибки ( Can't find progect or library.) нажимаю ОК, a=left ... подсвечена, а вкладка Tools-References (References) не активна :(
 
Ответить
СообщениеПри выходе ошибки ( Can't find progect or library.) нажимаю ОК, a=left ... подсвечена, а вкладка Tools-References (References) не активна :(

Автор - pechkin
Дата добавления - 04.08.2019 в 12:52
_Igor_61 Дата: Воскресенье, 04.08.2019, 13:02 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Этот макрос отлично работает в 2003 версии, а 2016 выдает ошибку и подсвечивает-left

Файл не прикладываю, т.к. ,думаю, что в нем нет необходимости.
Зря, наверное, как проверить? Может что-то с Вашей версией 20016 не то? Раз уж
вкладка Tools-References (References) не активна
На других машинах проверяли файл?
 
Ответить
Сообщение
Этот макрос отлично работает в 2003 версии, а 2016 выдает ошибку и подсвечивает-left

Файл не прикладываю, т.к. ,думаю, что в нем нет необходимости.
Зря, наверное, как проверить? Может что-то с Вашей версией 20016 не то? Раз уж
вкладка Tools-References (References) не активна
На других машинах проверяли файл?

Автор - _Igor_61
Дата добавления - 04.08.2019 в 13:02
pechkin Дата: Воскресенье, 04.08.2019, 13:08 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
На 2016-на других машинах не проверял. Если просто зайти в VBA, то вкладка Tools-References работает, а при описываемой ситуации увы..
 
Ответить
СообщениеНа 2016-на других машинах не проверял. Если просто зайти в VBA, то вкладка Tools-References работает, а при описываемой ситуации увы..

Автор - pechkin
Дата добавления - 04.08.2019 в 13:08
_Boroda_ Дата: Воскресенье, 04.08.2019, 14:47 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Конечно. Если Вы в процессе отладки макроса, то она и не будет работать. Нужно сначала прекратить работу макроса, а потом уже лезть вовнутря
Завершите работу макроса кнопкой Ресет (на панели VBA)
Посмотрите, какие библиотеки включены. Засканьте и покажите
Напишите
[vba]
Код
ppp_=ActiveWorkbook.Path
[/vba]посмотрите, чему равна ррр_
[vba]
Код
aaa_=left(ppp_,3)
[/vba]посмотрите, чему равна ааа_

В 2013 у меня Left нормально проскакивает. 2016 дома нет


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКонечно. Если Вы в процессе отладки макроса, то она и не будет работать. Нужно сначала прекратить работу макроса, а потом уже лезть вовнутря
Завершите работу макроса кнопкой Ресет (на панели VBA)
Посмотрите, какие библиотеки включены. Засканьте и покажите
Напишите
[vba]
Код
ppp_=ActiveWorkbook.Path
[/vba]посмотрите, чему равна ррр_
[vba]
Код
aaa_=left(ppp_,3)
[/vba]посмотрите, чему равна ааа_

В 2013 у меня Left нормально проскакивает. 2016 дома нет

Автор - _Boroda_
Дата добавления - 04.08.2019 в 14:47
pechkin Дата: Понедельник, 05.08.2019, 17:26 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Сделал файл пример с вышеупомянутым макросом в 2003. Работает и в 2016. Значит порча именно в конкретном файле. Буду что-то пробовать. Спасибо!
К сообщению приложен файл: 2232426.png (192.0 Kb) · 1389618.xls (25.5 Kb)


Сообщение отредактировал pechkin - Понедельник, 05.08.2019, 17:26
 
Ответить
СообщениеЗдравствуйте! Сделал файл пример с вышеупомянутым макросом в 2003. Работает и в 2016. Значит порча именно в конкретном файле. Буду что-то пробовать. Спасибо!

Автор - pechkin
Дата добавления - 05.08.2019 в 17:26
doober Дата: Понедельник, 05.08.2019, 20:16 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация: 333 ±
Замечаний: 0% ±

Excel 2010
На снимке же видно где проблема, и она подсвечена


 
Ответить
СообщениеНа снимке же видно где проблема, и она подсвечена

Автор - doober
Дата добавления - 05.08.2019 в 20:16
pechkin Дата: Вторник, 06.08.2019, 07:20 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравсвуйте! К сожалению, я не обладаю теоритическими знаниями, все делалось методом научного(или ненаучного) тыка. Подсвеченная строка показывает ошибку, а что дальше? :(
 
Ответить
СообщениеЗдравсвуйте! К сожалению, я не обладаю теоритическими знаниями, все делалось методом научного(или ненаучного) тыка. Подсвеченная строка показывает ошибку, а что дальше? :(

Автор - pechkin
Дата добавления - 06.08.2019 в 07:20
RAN Дата: Вторник, 06.08.2019, 07:35 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А дальше сделать "птичка, кыш!" ;)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА дальше сделать "птичка, кыш!" ;)

Автор - RAN
Дата добавления - 06.08.2019 в 07:35
pechkin Дата: Вторник, 06.08.2019, 08:35 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 332
Репутация: 49 ±
Замечаний: 0% ±

2003
Спасибо! hands Заработало. Что это было. Лишняя библиотека. А как будет на 2003 Прикладываю скан библиотек на компьютере с 2003 офисом. Разница в 2 штуки (еще Microsoft forms2) Тоже отключить?
К сообщению приложен файл: 6224718.png (119.6 Kb)
 
Ответить
СообщениеСпасибо! hands Заработало. Что это было. Лишняя библиотека. А как будет на 2003 Прикладываю скан библиотек на компьютере с 2003 офисом. Разница в 2 штуки (еще Microsoft forms2) Тоже отключить?

Автор - pechkin
Дата добавления - 06.08.2019 в 08:35
RAN Дата: Вторник, 06.08.2019, 08:39 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Прогонять птиц нужно только со строк с MISSING.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПрогонять птиц нужно только со строк с MISSING.

Автор - RAN
Дата добавления - 06.08.2019 в 08:39
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!