|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.09.2016, 18:38 | #1 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Объявление переменных для 64-разрядного excel 2013
Здравствуйте Уважаемые программисты!
Подскажите пожалуйста, как исправить 2 кода (отмечено ниже подчеркиванием), чтобы они работали в 32-разрядной и 64-разрядной версии excel (2013, vba)? Заранее спасибо! 1код: Код:
Код:
Последний раз редактировалось ольгаг; 20.09.2016 в 19:07. |
20.09.2016, 19:30 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
как-то так (у меня проверить не на чем((((
#if win64 then Private Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As LongLong ' аналогично остальные 'Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long 'Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 'Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hWnd As Long) As Long #else Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hWnd As Long) As Long #end if
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
20.09.2016, 19:38 | #3 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
Список всех основных функций (Таблица "Declarations by API function", первая в каждом ряду - 32bit, вторая - 64)
|
20.09.2016, 20:26 | #4 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
+1 IgorGO. Использую #IF WIN64 ... с PtrSafe
https://msdn.microsoft.com/ru-ru/lib...ffice.14).aspx
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
21.09.2016, 12:37 | #5 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Спасибо!
Подскажите пожалуйста где в коде ниже ошибка, сейчас этот код выдает "Compile error: Type mismatch" на строке "ihWnd = FindWindow(vbNullString, Me.Caption)" (64-разрядный excel 2013)? Код:
Последний раз редактировалось ольгаг; 21.09.2016 в 12:40. |
21.09.2016, 12:46 | #6 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
В каких модулях код? В одном или каждый в своем: обявление в отдельном модуле, инициализация в модуле формы?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
21.09.2016, 13:25 | #7 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Извините,
инициализация в модуле формы. |
22.09.2016, 01:18 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
вот здесь ошибка: Dim ihWnd As Long
напишите просто Dim ihWnd или так: Код:
|
22.09.2016, 13:29 | #9 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Спасибо!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Excel + VBA 2013 + Access 2013 | ESTerekhov | Microsoft Office Excel | 1 | 04.06.2014 16:24 |
объявление переменных в delphi | irradiator | Общие вопросы Delphi | 5 | 28.05.2014 14:32 |
MVC - объявление переменных | Nikirinka | PHP | 4 | 03.02.2012 20:39 |
Объявление ссылочных переменных | _-Re@l-_ | Общие вопросы C/C++ | 5 | 14.03.2011 12:32 |
Объявление переменных | Hemul | Общие вопросы C/C++ | 11 | 06.02.2011 16:37 |