BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Runtime Error 9 в Excel на някои компютри
MeXaHuK
Публикувано на: 04-06-2019, 14:40
Quote Post



Име: Симеон Младенов
Група: Потребител
Ранг: Посетител

Мнения: 100
Регистриран на: 12.03.05



Здравейте, преди време писах едно приложение /не знам как точно да го нарека/ на VBA за Excel, и не мога да разбера поради каква причина на някои компютри, отказва да работи, като дава грешка Runtime Error 9. За жалост на всички достъпни ми машини проблем няма и не мога да опитам да определя по-точно проблема в кой ред от кода е. Предполагам е от някаква настройка на Windows или Excel. Четох доста по темата, и имаше изтъкнати причини но всеки опит да ги симулирам на моя компютър не водеха до нищо - всичко пак си работеше както преди. Едни казваха, че е това дали в Windows виждаш разширението на файла, други от това какви макроси е разрешено да ползва Excel, но дори и след промяна на въпросните както казах всичко пак си работи. Мислех да не е и от версията на Excel, но я пробвах и на 2010 и на 2016 и на 2019 и проблем при мен отново няма. Предполагам е някаква страшно глупава причина, но не мога вече 2 дни да се оправя при тези обстоятелства. Моля помогнете ако сте имали този проблем и знаете решението.
PMEmail PosterICQ
Top
Антон Яначков
Публикувано на: 04-06-2019, 16:46
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1278
Регистриран на: 27.07.16



Екселът е умен и винаги ще ти посочи на кой ред е грешката, освен в случай когато си декларирал API функция за VBA7 и я пуснеш на 32 битова машина или обратно. Прегледай декларциите на функциите и ги декларирай едновременно за стари и нови офиси, чрез IF. Със сигурност проблема ти е от неправина декларация. Неприятна работа е да подкараш дадена програма да работи на всички офиси, но е напълно възможна.
Пример:
CODE

#If VBA7 Then
   Public Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
#Else
   Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
#End If

Ако инсталираш офис 2003 ще наблюдаваш брейкването на програмата и на твоя компютър.


Това мнение е било редактирано от Антон Яначков на 04-06-2019, 16:50
PMEmail PosterUsers Website
Top
MeXaHuK
Публикувано на: 04-06-2019, 21:14
Quote Post



Име: Симеон Младенов
Група: Потребител
Ранг: Посетител

Мнения: 100
Регистриран на: 12.03.05



Благодаря за съвета, мина и на мен през ума, че може и това да е причината. Ще опитам утре, но не съм голям оптимист, защото ме уверяват, че проблема се появява на Office 2016 и 2019, и то на 64 битова машина. Разбира се нямам идея познавайки потребителите това доколко е вярно. Освен това с цел да не си играят съм заключил не само целия workbook ами и VBA кода и няма как и това да ми кажат в кой ред дава грешката /а и да можеха едва ли ще ми кажат каквото трябва/. Мисля си дали проблем не прави и кирилицата, защото доста имена на sheets и групи клетки съм задал на кирилица и на въпросните машини дали това не прави проблема.
PMEmail PosterICQ
Top
Антон Яначков
Публикувано на: 04-06-2019, 21:32
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1278
Регистриран на: 27.07.16



QUOTE (MeXaHuK @ 04-06-2019, 21:14)
Благодаря за съвета, мина и на мен през ума, че може и това да е причината. Ще опитам утре, но не съм голям оптимист, защото ме уверяват, че проблема се появява на Office 2016 и 2019, и то на 64 битова машина. Разбира се нямам идея познавайки потребителите това доколко е вярно. Освен това с цел да не си играят съм заключил не само целия workbook ами и VBA кода и няма как и това да ми кажат в кой ред дава грешката /а и да можеха едва ли ще ми кажат каквото трябва/. Мисля си дали проблем не прави и кирилицата, защото доста имена на sheets и групи клетки съм задал на кирилица и на въпросните машини дали това не прави проблема.

Според мен е изключено Кирилицата да е проблем, но помисли дали не си въвел в проекта някоя контрола, която да се явява външна за Excel. В този случай на едни компютри я има инсталирана и работи, а на други я няма и ти дава грешка. Също така прегледай шрифтовете, да не би да си използвал шрифт, който не се инсталира по-подразбиране. Моят съвет е - отключи целият проект и го дай за тест точно там където не тръгва. В България няма кой да ти го открадне, дори това да е програма за изкуствен интелект.

Послепис: Провери програмата за дуракоустойчивост. Да не би при някаква комбинация да се получава грешката. И още нещо, много хора силно се страхуват от макроси и са склонни да ти кажат, че при тях не тръгва само и само да не я пробват. Аз имам един приятел надарен от бога с голяма каръкщина. Той има способността така да кликне, че един бъг да е само и той ще попадне на него. Ако искаш да хванеш грешката веднага, ти тябва човек точно като него. Мога да те свържа с този талант. Ще се учудиш колко бъга може да хване само за няколко минути.

Това мнение е било редактирано от Антон Яначков на 04-06-2019, 21:48
PMEmail PosterUsers Website
Top
MeXaHuK
Публикувано на: 04-06-2019, 21:55
Quote Post



Име: Симеон Младенов
Група: Потребител
Ранг: Посетител

Мнения: 100
Регистриран на: 12.03.05



Предполагам сам се сещаш, че съм го заключил не защото се боя някой да го открадне icon_smile.gif С тия защити за които има 20 страници в Гугъл как да ги разбиеш icon_smile.gif
Просто пипат където не трябва или си пишат свободни съчинения по бланката, затова е тази "сигурност".
И аз не вярвам кирилицата да е проблема, но вече не знам за какво да се хвана. С шрифтовете не вярвам да е - използвах навсякъде мисля Calibri. Точно защото не исках да използвам разширения за Excel се наложи да пиша всичко от нулата ( а и колко добре съм го написал е съвсем отделна тема, като не съм писал нищо от години и то пък специално на VBA). Просто досега са го ползвали поне 12-13 души и само на двама дава този проблем. Ще опитам утре все пак съвета ти, дано това да помогне. В интерес на истината имах подобен проблем с URLDownloadToFile при версия 2010 работеше при 2016 не и добавянето на
CODE
#If VBA7 Then
   Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                                   (ByVal pCaller As Long, _
                                   ByVal szURL As String, _
                                   ByVal szFileName As String, _
                                   ByVal dwReserved As Long, _
                                   ByVal lpfnCB As Long) As Long
#Else
   Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                           (ByVal pCaller As Long, _
                           ByVal szURL As String, _
                           ByVal szFileName As String, _
                           ByVal dwReserved As Long, _
                           ByVal lpfnCB As Long) As Long
#End If

реши проблема.
PMEmail PosterICQ
Top
Антон Яначков
Публикувано на: 04-06-2019, 22:59
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1278
Регистриран на: 27.07.16



QUOTE (MeXaHuK @ 04-06-2019, 21:55)
В интерес на истината имах подобен проблем с URLDownloadToFile при версия 2010 работеше при 2016 не и добавянето на
CODE
#If VBA7 Then
   Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                                   (ByVal pCaller As Long, _
                                   ByVal szURL As String, _
                                   ByVal szFileName As String, _
                                   ByVal dwReserved As Long, _
                                   ByVal lpfnCB As Long) As Long
#Else
   Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
                           (ByVal pCaller As Long, _
                           ByVal szURL As String, _
                           ByVal szFileName As String, _
                           ByVal dwReserved As Long, _
                           ByVal lpfnCB As Long) As Long
#End If

реши проблема.

Редно е всяка една API функция да я декларираш по подобен начин и да я пробваш отделно на стар офис 2003 и най-нов офис. Има дори случаи, когато на по-новите офиси някоя API функция изобщо да не работи, защото там вече е заменена с вграден метод. Втози случай решението е да сложиш и двата варианта и да манипулираш грешката.
PMEmail PosterUsers Website
Top
Антон Яначков
Публикувано на: 04-06-2019, 23:05
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1278
Регистриран на: 27.07.16



Ако искаш можеш да ми пратиш файла да го пробвам и да се надяваме, че при мен ще изгърми. Изгърми ли, вече е лесно, но работи ли, то тогава трябва да се праща на карък.
PMEmail PosterUsers Website
Top
saruman
Публикувано на: 04-06-2019, 23:53
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2600
Регистриран на: 21.07.10





QUOTE
на някои компютри, отказва да работи, като дава грешка Runtime Error 9.


Изясни си ситуацията,в която се получава проблема,и ако е възможно си пренапиши ерор хендлинга да разбереш тая грешка откъде идва,щото Runtime Error 9 съкс

Това мнение е било редактирано от saruman на 05-06-2019, 00:00


--------------------
http://www.wefunkradio.com/radio/

Remember,remember the fifth of November
PMEmail Poster
Top
Golden Gega
Публикувано на: 05-06-2019, 07:43
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1624
Регистриран на: 04.06.10



Тествай да смениш езика за non-Unicode (Control Panel, Regional, Administrative, Change system locale), може зора да е адресирането на шийтове или обекти с имена на кирилица.
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 05-06-2019, 07:55
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2910
Регистриран на: 21.02.18



https://www.youtube.com/watch?v=s2GP1NRGQYU

на едно друго място пишеше, че се случва защото нямаш дефолтен принтер, абе безграничен е микромекия гейний

Това мнение е било редактирано от Gamma Goblin на 05-06-2019, 07:56


--------------------
https://www.rust-lang.org/
---
" Не може да си на висок пост без да си подкупен. Ще те махнат." - SuN Трола
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0