С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
1

Перевод макросов Excel 2007 для работы в Excel 2016

11.02.2020, 22:39. Показов 4292. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Перешли вынуждено на Офис 2016 и макросы созданные в Офисе 2007 для Excel перестали работать.
Проблема на поверхности, но не доходит как ее решить. Помогите пожалуйста.
Миниатюры
Перевод макросов Excel 2007 для работы в Excel 2016  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2020, 22:39
Ответы с готовыми решениями:

Разные результаты сортировки в Excel 2007 и Excel 2016
Всем привет. Есть таблица данных. Нужно отсротировать ее сначала по типу населенного пункта, а...

Excel 2007 вместо Excel 2016
Всем привет. На Windows 7 установлены MS Excel 2003, 2007, 2016. По умолчанию для типа .xlsx...

Расчет среднего значения по динамическому диапазону. Excel 2016, без макросов
Есть таблица с числовыми значениями, нужно вытаскивать средние значения с определенным периодом. ...

Какой SSD нужен для быстрого выполнения макросов и работы Excel
привет Всем! Вопрос такой. надумал купить SSD диск, что бы ускорить систему. Часто пользуюсь именно...

14
6953 / 2856 / 550
Регистрация: 19.10.2012
Сообщений: 8,737
11.02.2020, 23:30 2
Ответ по ссылке из подвала страницы:
Макрос для загрузки картинок - работал в Excel 2013, но не работает в Excel 2016
2
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
11.02.2020, 23:35  [ТС] 3
Спасибо. Видел, пока что-то не получается
0
oh my god
1455 / 794 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
12.02.2020, 06:55 4
Цитата Сообщение от Skreper Посмотреть сообщение
пока что-то не получается
Исправь в декларированных функицях: вместо ... As Long >> ... As LongPtr
2
6953 / 2856 / 550
Регистрация: 19.10.2012
Сообщений: 8,737
12.02.2020, 12:27 5
Про типы тоже написано в первом ответе по ссылке.
0
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
12.02.2020, 22:46  [ТС] 6
Пока ничего не получается.
Может вопрос в Windowsе, вместо 7-ки перешел на 10-ку. Попытался перекинуть shell32.dll из 7-ки в 10-ку, не разрешает.
Нашел какое-то решение сдесь http://forum.oszone.net/post-2766794.html но увы, пока ничего не выходит
0
6953 / 2856 / 550
Регистрация: 19.10.2012
Сообщений: 8,737
12.02.2020, 23:04 7
Лучший ответ Сообщение было отмечено Skreper как решение

Решение

А говорят что получалось:

all I had to do was change lines of code like this:
Visual Basic
1
2
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
To This:
Visual Basic
1
2
3
4
5
6
7
#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If
1
Skreper
12.02.2020, 23:43  [ТС]
  #8

Не по теме:

Спасибо. Приболел немного, пойду в пятницу посмотрю что и как

0
Skreper
13.02.2020, 07:42  [ТС]
  #9

Не по теме:

Спасибо. Приболел немного, пойду в пятницу посмотрю что и как
А как удалить свое сообщение?

0
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
14.02.2020, 17:54  [ТС] 10
Большое спасибо всем, особенно Hugo121, СПАСИБО.
Мучился вводить исправления вручную пока не вспомнил про Ctrl+C и Ctrl+V и все заработало. Ввел
Visual Basic
1
2
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Логично использовать переключение операционных систем, однако оказалось что VBA в Excel2016 не воспринимает операторы в русской транскрипции: Лист, Если, Или, ...
0
65 / 22 / 7
Регистрация: 28.02.2018
Сообщений: 214
17.02.2020, 08:35 11
Skreper, так FormulaLocal больше не работает?
0
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
17.02.2020, 12:07  [ТС] 12
Работает. Уже все нормально. Но появилась еще проблема. Выскакивает:
Unable to get Object property of the OLEObject class
при
Visual Basic
1
p = Sh3.Shapes("B" & g).OLEFormat.Object.Object.Value
Миниатюры
Перевод макросов Excel 2007 для работы в Excel 2016  
0
oh my god
1455 / 794 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
23.02.2020, 19:36 13
Цитата Сообщение от Skreper Посмотреть сообщение
.Object.Object
один класс убери
1
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
24.02.2020, 17:46  [ТС] 14
Проблема в другом. Excel 2016 (Windows 10) не видит CheckBox ActiveX созданные в Excel 2007 (Windows 7), а Excel 2007 (Windows 7) не видит CheckBox ActiveX созданные в Excel 2010 (Windows 10). Видимо какая-то нестыковка между ними.

В общем решил вопрос по простому. Заменил CheckBox на “*”, можно любой символ, букву (пробел (“”) лучше не использовать, не всегда пустая ячейка является пустой) и IFом определяю что вывести на печать

Ожидали что на новом ПК программа будет летать (для этого и купили), но увы, сбоит на ровном месте, больше чем на старом. При выполнении то вылетает что команды нет или что буфер пустой, то еще какая-то хрень, и в разных местах переноса в файл Wordа.
Visual Basic
1
2
3
4
  With wrdDoc
            .Bookmarks(tabl).Range.Paste  
            .Parent.Visible = True
         End With
Наверно какой-то другой метод использовать нужно. А какой не знаю.
0
3 / 3 / 0
Регистрация: 27.02.2016
Сообщений: 82
28.02.2020, 20:01  [ТС] 15
Не могу не раскрыть свое решение, вдруг кому-то в помощь.
В общем отказался от использование закладок в шаблонах Word, заменив их на {FIO1}, {FIO2}, ...{FIO30}
Работает как часики (с закладками были проблемы и в Ofis-е 2007 и 2010)

Visual Basic
1
2
3
4
5
6
7
8
9
For x=30
   ' ................. 
   If predmet = "Mex" Then fio = Sheets("Mex").Cells((r + ss + (g - 1) * s), 2) '.Copy
   If predmet = "Mex" Then dl = Sheets("Mex").Cells((r + ss + (g - 1) * s), 3) '.Copy
   tabl = "{" & "FIO" & r & "}"
   ct = "{" & "st" & r & "}"
   wrdDoc.Range.Find.Execute FindText:=ct, ReplaceWith:=dl, Replace:=2
   wrdDoc.Range.Find.Execute FindText:=tabl, ReplaceWith:=fio, Replace:=2  
 Next x
0
28.02.2020, 20:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2020, 20:01
Помогаю со студенческими работами здесь

Обработка в Excel 2007 табличных данных с использованием макросов на VBA
Помоооогите пожалуйста, братцы, сделать лабораторку, ОЧЕНЬ СРОЧНО!!! Буду безумно благодарен, если...

Макрос для загрузки картинок - работал в Excel 2013, но не работает в Excel 2016
Добрый день! Имеется макрос который работал в Excel 2013, но не работает в Excel 2016. ...

Язык интерфейса Excel 2007 влияет на язык макросов?
Здравствуйте. Думаю что нет, но лучше спрошу. Влияет ли язык интерфейса Excel 2007 на язык...

Разработка пользовательской таблицы средствами процессора Excel, создание и выполнение макросов Excel
Помогите пож Используется ексель + Microsoft Visual Basic for Applications( alt F11)

Приложение для работы с Excel которое не зависит от версии Excel
Как сделать приложение для работы с Excel которое не зависит от версии Excel установленой на...

Быстродействие макроса работы с УФ Excel 2003 vs 2007
Всем привет. Новичок на этом форуме. Господа, столкнулся с проблемой. Помогите, пожалуйста. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru