ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок Π²ΠΎ врСмя выполнСния

Ошибки ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прилоТСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки. Ошибка Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ условия, приводящиС ΠΊ сбою ΠΊΠΎΠ΄Π°, Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ исправно. НапримСр, Ссли ΠΊΠΎΠ΄ пытаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π½ΡƒΠΆΠ½Ρ‹Ρ… дСйствий. НапримСр, ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли ΠΊΠΎΠ΄ пытаСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ноль.

Если Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок, Visual Basic приостанавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π² ΠΊΠΎΠ΄Π΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ прилоТСния, вСроятнСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈ этом ΠΎΠ·Π°Π΄Π°Ρ‡Π΅Π½Ρ‹ ΠΈ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½Ρ‹. МногиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² свой ΠΊΠΎΠ΄ процСссы Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ошибок.

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° направляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап направлСния Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок состоит Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок ΠΏΡƒΡ‚Π΅ΠΌ добавлСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° On Error Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error направляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² событиС ошибки. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error отсутствуСт, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Visual Basic просто приостанавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС.

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ошибок, Visual Basic Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ сообщСниС ΠΎΠ± ошибкС. ВмСсто этого ΠΎΠ½ направляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок, ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ. Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ошибок, ΠΎΠ½ становится Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Π’ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ возникшСй ошибки ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ способом. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Access прСдставляСт Ρ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, содСрТащих свСдСния ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Error ADO, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Err Visual Basic ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Error DAO.

НаправлСниС выполнСния ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ происходит Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ событиС, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ исправлСниС условия, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π³ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ выполнСния. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ On Error ΠΈ Resume ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊ продолТаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² случаС ошибки.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки. Если процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² Π½Π΅Π³ΠΎ.

БущСствуСт Ρ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° On Error: On Error GoTo label, On Error GoTo 0 ΠΈ On Error Resume Next. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error GoTo label позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, начиная со строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. НуТно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка. Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ происходит ошибка, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² строку, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ label.

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, указанная Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ label, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎΠΌ процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. НапримСр, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΡƒΡŽ строку:

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error GoTo 0 ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибки Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅. Он Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ строку 0 Π² качСствС Π½Π°Ρ‡Π°Π»Π° для ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, Π΄Π°ΠΆΠ΅ Ссли Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π΅ΡΡ‚ΡŒ строка с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 0. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error GoTo 0 отсутствуСт Π² ΠΊΠΎΠ΄Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок автоматичСски ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error GoTo 0 сбрасываСт свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err, оказывая Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ дСйствиС, ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Clear ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error Resume Next ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ строку, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈ направляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° Π½Π΅ΠΉ строкС. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ прСрываСтся. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ On Error Resume Next, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err сразу послС строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ оТидаСтся Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибки, ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume направляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ Ρ‚Π΅Π»Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ· процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Однако ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ; ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ послС процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

БущСствуСт Ρ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Resume. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume ΠΈΠ»ΠΈ Resume 0 Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume Next Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² строку, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ нСпосрСдствСнно послС строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume label Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² строку, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ label. АргумСнт label Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ строки ΠΈΠ»ΠΈ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ строки.

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½ΡƒΠΆΠ½ΠΎ внСсти исправлСниС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume ΠΈΠ»ΠΈ Resume 0. НапримСр, Ссли Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для открытия, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ запрос ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume Next, Ссли ΠΊΠΎΠ΄ исправляСт ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запуска строки, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅ΠΉ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Resume label, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ label. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с процСсса Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅.

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Если Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ добавляСтся процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, слСдуСт Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ процСсс Π²Ρ‹Ρ…ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок запускался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ процСсс Π²Ρ‹Ρ…ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ строки Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ указываСтся процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ процСсс Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅. Если ошибка Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, процСсс Π²Ρ‹Ρ…ΠΎΠ΄Π° запускаСтся послС Ρ‚Π΅Π»Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся процСссу Π²Ρ‹Ρ…ΠΎΠ΄Π° послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π° содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Exit.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…

Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π±Π΅Π· Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок, Visual Basic выполняСт поиск ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π° Π½Π΅ просто приостанавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Благодаря этому Ρƒ ΠΊΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° A Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ B, Π° ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° B Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ C. Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ C, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок, Visual Basic провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок Π² ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ B, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ A. Если ΠΎΠ½ сущСствуСт, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся этому ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ошибок. Если Π΅Π³ΠΎ Π½Π΅Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостанавливаСтся ΠΈ отобраТаСтся сообщСниС ΠΎΠ± ошибкС.

Visual Basic Ρ‚Π°ΠΊΠΆΠ΅ выполняСт поиск Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок. МоТно ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Visual Basic Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, запустив ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Raise ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСоТиданная ошибка ΠΈ ΠΎΠ½Π° воспроизводится Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π°Π·Π°Π΄ ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для поиска Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ настроСн для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠΉ ошибки.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ C Π΅ΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для возникшСй ошибки. ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ошибок Π½Π° всС ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ ошибки ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ воспроизвСсти ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ПослС этого Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π°Π·Π°Π΄ ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок Π² ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ B (Ссли ΠΎΠ½ сущСствуСт), обСспСчивая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ исправлСния ошибки этим ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ошибок. Если Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ B Π½Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок ΠΈΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ снова воспроизводит Π΅Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ А, прСдполагая Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ влоТСнная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, содСрТащая срСдство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² (ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ошибки). Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π‘ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСоТиданная ошибка дСлСния Π½Π° ноль. Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для воспроизвСдСния исходной ошибки, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π°Π·Π°Π΄ ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ошибок, Ссли ΠΎΠ½ сущСствуСт. Если Π²Ρ‹ исправляли ΠΎΡˆΠΈΠ±ΠΊΡƒ дСлСния Π½Π° ноль Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π² спискС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ошибка Π±ΡƒΠ΄Π΅Ρ‚ исправлСна. Если ΠΊΠΎΠ΄ Π½Π΅ воспроизводит ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π΅Π· исправлСния ошибки дСлСния Π½Π° ноль. Π­Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки Π² Π½Π°Π±ΠΎΡ€Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Visual Basic выполняСт поиск Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Ссли:

Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π½Π΅ содСрТащСй Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок.

Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибок. Если для запуска ошибки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Raise ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Visual Basic Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибок ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎΠ± ошибкС

ПослС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ выполнСния процСссу ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°, ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅. Visual Basic ΠΈ Access ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ нСсколько элСмСнтов языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния свСдСний ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ошибкС. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ошибок. Π’Π°ΠΊ ΠΊΠ°ΠΊ ошибки ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частях прилоТСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Π½Π° основС ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… ошибок.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ языка, доступныС для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Error ΠΈ коллСкция Errors ADO

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Error ΠΈ коллСкция Errors DAO

ΠœΠ΅Ρ‚ΠΎΠ΄ AccessError

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Error

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err прСдставлСн Π² Visual Basic. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Visual Basic свСдСния ΠΎΠ± этой ошибкС ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Err. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err Ρ…Ρ€Π°Π½ΠΈΡ‚ свСдСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ошибкС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ошибки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Err измСняСтся для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свСдСний ΠΎΠ± этой ошибкС вмСсто старой.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСдСния ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ошибкС, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Err Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ²:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Raise ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для воспроизвСдСния исходной ошибки. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, отличная ΠΎΡ‚ ошибки нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π°Π·Π°Π΄ ΠΏΠΎ списку Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок, Ссли ΠΎΠ½ сущСствуСт.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err прСдоставляСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свСдСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Visual Basic. Однако ΠΎΠ½ Π½Π΅ прСдоставляСт ΠΏΠΎΠ»Π½Ρ‹Π΅ свСдСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Access ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ядра Π‘Π£Π‘Π” Access. Access ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ (DAO) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты языка, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Error ΠΈ коллСкция Errors

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Error ΠΈ коллСкция Errors ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ интСрфСйсами ADO ΠΈ DAO. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Error прСдставляСт ΠΎΡˆΠΈΠ±ΠΊΡƒ ADO ΠΈΠ»ΠΈ DAO. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ опСрация ADO ΠΈΠ»ΠΈ DAO ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ нСсколько ошибок, особСнно ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ODBC DAO. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ Π²ΠΎ врСмя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Error. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Error, связанныС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ADO ΠΈΠ»ΠΈ DAO, хранятся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Errors. Ошибки Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° ошибки Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΡΠ²Π»ΡΡŽΡ‚ΡΡ послСдними ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки ADO ΠΈΠ»ΠΈ DAO ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Err Visual Basic сохраняСт Π½ΠΎΠΌΠ΅Ρ€ ошибки для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Errors. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, происходили Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ошибки ADO ΠΈΠ»ΠΈ DAO, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Errors. ЗначСния свойств Number ADO ΠΈΠ»ΠΈ Number DAO ΠΈ свойств Description ADO ΠΈΠ»ΠΈ Description DAO ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Error Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Errors Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ со значСниями свойств Number ΠΈ Description ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err Visual Basic.

ΠœΠ΅Ρ‚ΠΎΠ΄ AccessError

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Raise ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Err, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Visual Basic, Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΠ²ΡˆΡƒΡŽ Π½Π° самом Π΄Π΅Π»Π΅, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ строку описания, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с этой ошибкой. Однако нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Raise, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Access, ΠΎΡˆΠΈΠ±ΠΊΡƒ ADO ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ DAO. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ строку описания, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ошибкой Access, ошибкой ADO ΠΈΠ»ΠΈ ошибкой DAO, Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΠ²ΡˆΠ΅ΠΉ Π½Π° самом Π΄Π΅Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ AccessError.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Error

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Error ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ошибок Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Access. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся ввСсти тСкст Π² ΠΏΠΎΠ»Π΅ с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… «Π”Π°Ρ‚Π° ΠΈ врСмя», Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ событиС Error. Если Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Error Π² Ρ„ΠΎΡ€ΠΌΡƒ Employees, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ввСсти тСкстовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ HireDate, запустится ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Error.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Error ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ цСлочислСнный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ DataErr. Когда запускаСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Error, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ DataErr сохраняСт Π½ΠΎΠΌΠ΅Ρ€ возникшСй ошибки Access. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° DataErr Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий β€” это СдинствСнный способ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ возникшСй ошибки. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err Π½Π΅ заполняСтся свСдСниями ΠΎΠ± ошибкС послС возникновСния события Error. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° DataErr вмСстС с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ AccessError, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ошибки ΠΈ Π΅Π³ΠΎ строку описания.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Error ΠΈ функция Error ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для обСспСчСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Err ΠΈ Error, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ AccessError ΠΈ событиС Error для получСния свСдСний ΠΎΠ± ошибкС.

Об участниках

Бсылка прСдоставлСна ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ кодасообщСством UtterAccess.

UtterAccess β€” это ΠΏΡ€Π΅ΠΌΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠΊΠΈ-ΠΏΠΎΡ€Ρ‚Π°Π» ΠΈ Ρ„ΠΎΡ€ΡƒΠΌ, посвящСнный Microsoft Access.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ обратная связь

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Office VBA ΠΈΠ»ΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ? Руководство ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам получСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Office VBA ΠΈ обратная связь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’ΠΈΠΏΡ‹ ошибок Π² VBA

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ макросов Excel ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² VBA дСлят Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Ρ‚ΠΈΠΏΠΎΠ² ошибок VBA ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Ошибки компиляции

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ VBA рассматриваСт ошибки компиляции ΠΊΠ°ΠΊ нСдопустимыС ΠΈ выдСляСт ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅ Π΅Ρ‰Ρ‘ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π΅Π»ΠΎ Π΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π΄ΠΎ запуска макроса.

Если ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° синтаксичСская ошибка, Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA сигнализируСт ΠΎΠ± этом Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ: Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΊΠ½Π° с сообщСниСм, Π»ΠΈΠ±ΠΎ выдСляя ΠΎΡˆΠΈΠ±ΠΊΡƒ красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Π² зависимости ΠΎΡ‚ статуса Ρ€Π΅ΠΆΠΈΠΌΠ° Auto Syntax Check.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Auto Syntax Check ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΏΡ€ΠΈ появлСнии Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Visual Basic Π²ΠΎ Π²Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ синтаксичСской ошибки, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Если ΠΆΠ΅ этот Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎ синтаксичСских ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, просто выдСляя ΠΈΡ… красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ΠžΠΏΡ†ΠΈΡŽ Auto Syntax Check ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² мСню Tools > Options Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Visual Basic.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ошибка компиляции ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ компиляции ΠΊΠΎΠ΄Π°, нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ макрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции нСслоТно ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ компилятор VBA Π΄Π°Ρ‘Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ошибки.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°

НапримСр, сообщСниС β€œCompile error: Variable not defined” ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° VBA Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая Π½Π΅ Π±Ρ‹Π»Π° объявлСна для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ области (такая ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Option Explicit).

Ошибки выполнСния

Ошибки выполнСния Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² процСссС выполнСния ΠΊΠΎΠ΄Π° ΠΈ приводят ΠΊ остановкС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ошибок VBA, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ слоТно ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сообщаСтся информация ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅ ошибки ΠΈ мСсто Π² ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° остановка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΉ ошибки ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ сообщСниС β€œRun-time error ’11’: Division by zeroβ€œ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°

Π’ зависимости ΠΎΡ‚ структуры ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VBA, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅). Π’ этом случаС ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Debug (Π² ΠΎΠΊΠ½Π΅ сообщСния ΠΎ нСобходимости ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ) Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° Ρ†Π²Π΅Ρ‚ΠΎΠΌ строка ΠΊΠΎΠ΄Π°, которая стала ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибки VBA.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ошибок Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vba автоматичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Ρ‚Π°ΠΊΠΎΠ΅ сообщСниС ΠΈ видя Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ошибки Π±ΡƒΠ΄Π΅Ρ‚ совсСм Π½Π΅ слоТно.

Π’ случаС Ссли ΠΊΠΎΠ΄ слоТнСС, Ρ‡Π΅ΠΌ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ возникновСния ошибки VBA, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ VBA для этого достаточно навСсти ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ отслСТивания Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π² мСню Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° View > Locals Window).

ΠšΠΎΠ΄Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ошибок выполнСния Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° сайтС Microsoft Support (Π½Π° английском). НаиболСС часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ошибки VBA пСрСчислСны Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

5НСдопустимый Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (Invalid procedure call)
7НСдостаточно памяти (Out of memory)
9ИндСкс внС заданного диапазона (Subscript out of range)

Π­Ρ‚Π° ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту массива Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли объявлСн массив с индСксами ΠΎΡ‚ 1 Π΄ΠΎ 10, Π° ΠΌΡ‹ пытаСмся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту этого ΠΆΠ΅ массива с индСксом 11.

11Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль (Division by zero)
13НСсоотвСтствиС Ρ‚ΠΈΠΏΠ° (Type mismatch)

Π­Ρ‚Π° ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, объявлСна пСрСмСнная i Ρ‚ΠΈΠΏΠ° Integer, ΠΈ происходит ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строкового Ρ‚ΠΈΠΏΠ°.

53Π€Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ (File not found)

Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ».

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ошибок выполнСния

НС всС ошибки выполнСния Π±Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π½Π΅Π΄ΠΎΡ‡Ρ‘Ρ‚Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅. НапримСр, ошибки VBA Π½Π΅ удастся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Ссли для Ρ€Π°Π±ΠΎΡ‚Ρ‹ макроса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° этого Ρ„Π°ΠΉΠ»Π° Π½Π΅ сущСствуСт. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ профСссионализма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ошибок ΠΈ написаниС ΠΊΠΎΠ΄Π° VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто нСприятных сбоСв Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ изящноС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ макроса.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ошибками, VBA прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ On Error ΠΈ Resume. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ ошибки ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макроса Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΊΠΎΠ΄Π° VBA, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибки. ПослС выполнСния ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки, Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° с Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка, ΠΈΠ»ΠΈ макрос ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ остановлСн ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Π”Π°Π»Π΅Π΅ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’ этом ΠΊΠΎΠ΄Π΅ производится ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Excel с ΠΈΠΌΠ΅Π½Π΅ΠΌ Data. Если Ρ„Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сдСлаСт это ΠΈ Π½Π°ΠΆΠΌΡ‘Ρ‚ ОК, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° продолТится, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» повторится. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ вмСсто ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Sub ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ Π² этом мСстС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Exit Sub.

ЛогичСскиС ошибки

ЛогичСскиС ошибки (ΠΈΠ»ΠΈ Π±Π°Π³ΠΈ) Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² процСссС выполнСния ΠΊΠΎΠ΄Π° VBA, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΅ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ самого Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€Π°Π²Π΄Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ оТидалось, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’Π°ΠΊΠΈΠ΅ ошибки ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ всСго, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ компилятор VBA ΠΈΡ… Π½Π΅ распознаёт ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это происходит с ошибками компиляции ΠΈ выполнСния.

НапримСр, ΠΏΡ€ΠΈ создании макроса Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ случайно Π±Ρ‹Π»ΠΈ просуммированы Π½Π΅ Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ, Π½ΠΎ макрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Excel VBA прСдоставляСт Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ логичСскиС ошибки Π² ΠΊΠΎΠ΄Π΅ VBA. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ эти инструмСнты. Π›ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Π·ΠΎΡ€ инструмСнтов ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ VBA Π½Π° сайтС Microsoft Help & Support (Π½Π° английском).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, Ρ‚ΠΎ навСрняка вспомнитС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ посадкС Π½Π° Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ сидСньС всС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΊ Ρ‚Ρ€Π΅ΠΌ дСталям: Ρ€ΡƒΠ»ΡŽ, пСдалям ΠΈ Ρ€Ρ‹Ρ‡Π°Π³Ρƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΡΡ‰Π΅Π΅ Π²Π½Π΅ автомобиля ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒΡΡ с мСста. По ΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ воТдСния ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π»ΠΈΡΡŒ ΠΈ эти Ρ‚Ρ€ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ постСпСнно ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° Π·Π°Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½. Как Π½ΠΈ странно, Π½ΠΎ Ρ€ΡƒΠ»ΡŒ ΠΈ Ρ€Ρ‹Ρ‡Π°Π³ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ всСгда ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ‚Π°ΠΌ, ΠΊΡƒΠ΄Π° Π²Ρ‹ Π½Π΅ смотря протягивали Ρ€ΡƒΠΊΠΈ, Π° Π½ΠΎΠ³ΠΈ сами Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΠ΅Π΄Π°Π»ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стало Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ происходящСС Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π΅. Π˜Π½Ρ‹ΠΌΠΈ словами, Π²Ρ‹ стали ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ всС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты большС ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ попавшиСся Π½Π° Π³Π»Π°Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты языка, Π° сам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π·Π°Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Π±Π΅Π· ошибок, Ρ‚ΠΎ это ΡƒΠΆΠ΅ большоС ΡΡ‡Π°ΡΡ‚ΡŒΠ΅, хотя это Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. По ΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ программиста мСняСтся, ΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Π»ΠΎΡ‡ΠΈ, Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всСго этого допускаСт мСньшС ошибок. Подводя ΠΈΡ‚ΠΎΠ³ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ программист просто ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ программист пытаСтся Π½Π°ΠΉΡ‚ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситациях. Однако, ΠΎΡ‚ ошибок Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ застрахован, поэтому ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ быстро Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’ΠΈΠΏΡ‹ ошибок

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ On Error

Если Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ прСдусмотрСн ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ошибки, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрываСтся ΠΈ выводится стандартноС ΠΎΠΊΠ½ΠΎ с описаниСм ΠΈ нСсколькими ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ: Continue (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ), End (Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Debug (ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ) ΠΈ Help (Π²Ρ‹Π²ΠΎΠ΄ справки).

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Resume

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Resume позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΡƒΠ΄Π° слСдуСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²:

Если инструкция Resume Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π°, Ρ‚ΠΎ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ошибки ΠΈ производится Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ошибкС ΠΈ гСнСрация ошибки

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Err содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Бпособы поиска ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Однако, наибольшСС количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ программист Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ ошибок β€” логичСскиС ошибки. Π’ этом случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° компилируСтся Π±Π΅Π· ошибок, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ. Битуация Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ослоТняСтся, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ проявляСтся лишь пСриодичСски, Π° Π½Π΅ постоянно. Π˜Π½ΡΡ†Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ этот ΠΆΠ΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ слоТно ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим лишь «Π΄Π΅Π΄ΠΎΠ²ΡΠΊΠΈΠ΅» (Π½ΠΎ ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅) способы поиска ошибок, Π° соврСмСнныС способы ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, доступныС Π² VBA, ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Π½Π° Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, β€” Π½Π° объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ инструкции компилятор ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ объявлСния всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если пСрСмСнная Π½Π΅ Π±Ρ‹Π»Π° объявлСна явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΎ компилятор Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ остановлСно. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”Π°Π»Π΅Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π° это Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ внимания, считая этот процСсс лишним. А Π½Π° самом Π΄Π΅Π»Π΅ зря! ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρƒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ, размСститС Π²Ρ‹ всС инструкции Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Однако, ΠΏΡ€ΠΈ поискС ошибок Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС.

ΠŸΠ΅Ρ€Π΅Π΄ всСми инструкциями Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ располоТСно ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°. ΠžΡ‚ примСнСния символов табуляции Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ. Если всС ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, Ρ‚ΠΎ Π½Π΅ слСдуСт Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ. Для Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности. Если для Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня влоТСнности использовалось Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Ρ‚ΠΎ для Π±Π»ΠΎΠΊΠ° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня влоТСнности Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ уровня β€” Π΄Π΅Π²ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ форматирования Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 11.1.

Листинг 11.1. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ форматирования Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²

Π”Π»ΠΈΠ½Π° ΠΎΠ΄Π½ΠΎΠΉ строки Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 80 символов. Если количСство символов большС, Ρ‚ΠΎ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ смСщаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ основной инструкции Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ отступа ΠΈΠ»ΠΈ выравниваСтся ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ элСмСнту. Π˜Π½Π°Ρ‡Π΅ приходится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ полосой ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, Π° это ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ поискС ошибок.

Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° слишком большая, Ρ‚ΠΎ слСдуСт Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ логичСски Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹Π΅ дСйствия. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ «ΡΠΏΠ°Π³Π΅Ρ‚Ρ‚ΠΈ»-ΠΊΠΎΠ΄. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (ΠΈΠ»ΠΈ класс) Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΅Π΅ слСдуСт ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, пСрСдавая ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΈ провСряя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π΅ выполнСния.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°, Π° Π½Π΅ Π²ΠΎ врСмя поиска ошибок. Π­Ρ‚ΠΈΠΌ Π²Ρ‹ сократитС врСмя поиска ошибки ΠΈ скорСС всСго Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π΅Ρ‰Π΅ Π½Π° этапС написания. Если всС ΠΆΠ΅ ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°, Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ слСдуСт ΠΈΠ½ΡΡ†Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ошибка проявляСтся. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ поиск ошибки.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы позволяСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конструкция:

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² VBA

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ поиск ошибок Π±ΠΎΠ»Π΅Π΅ эффСктивным позволяСт ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, встроСнный Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ шагам, ΠΏΡ€ΠΈ этом контролируя значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Π³Ρƒ. ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ позволяСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, соотвСтствуСт Π»ΠΈ порядок выполнСния инструкций Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌΡƒ Ρ€Π°Π½Π΅Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.

Когда Ρ‚ΠΎΡ‡ΠΊΠΈ останова расставлСны ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Для этого запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом. ΠŸΡ€ΠΈ достиТСнии Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрываСтся ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… дСйствий программиста. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС, помСчаСтся ΠΆΠ΅Π»Ρ‚ΠΎΠΉ стрСлкой слСва ΠΎΡ‚ строки.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСрывания ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ значСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ Locals. Если ΠΎΠΊΠ½ΠΎ Π½Π΅ отобраТаСтся, Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π² Π² мСню View ΠΏΡƒΠ½ΠΊΡ‚ Locals Window. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ссли навСсти ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ отобразится Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ подсказкС.

Для пошагового выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π² мСню Debug ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Debug ( View | Toolbars | Debug):

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚ΠΎ слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Call Stack, Π²Ρ‹Π±Ρ€Π°Π² Π² мСню View ΠΏΡƒΠ½ΠΊΡ‚ Call Stack.

ΠŸΠΎΠ΄Π°Ρ‡Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ сигнала

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Visual Basic for Applications (VBA)

ΠŸΠΎΠΌΠΎΡ‰ΡŒ сайту

ПАО Π‘Π±Π΅Ρ€Π±Π°Π½ΠΊ:
Π‘Ρ‡Π΅Ρ‚: 40817810855006152256
Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π±Π°Π½ΠΊΠ°:
НаимСнованиС: Π‘Π•Π’Π•Π Πž-Π—ΠΠŸΠΠ”ΠΠ«Π™ Π‘ΠΠΠš ПАО Π‘Π‘Π•Π Π‘ΠΠΠš
ΠšΠΎΡ€Ρ€Π΅ΡΠΏΠΎΠ½Π΄Π΅Π½Ρ‚ΡΠΊΠΈΠΉ счСт: 30101810500000000653
Π‘Π˜Πš: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНΠ₯: 96130
Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ²

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *