Makale numarası: 146864 - Son Gözden Geçirme: 19 Ocak 2007 Cuma - Gözden geçirme: 3.4 Visual Basic for Applications yakalama hata
Bu SayfadaÖzetMicrosoft Visual Basic for Applications makrosu bir çalıştırma hatası ortaya çıktığında, ekranda bir hata iletisi görüntülenir ve makronun durur veya unpredictably olarak davranır. Kilitlenen veya unpredictably behaving uygulama önlemek için <a0></a0>, hata ele geçirilip makro bu anlatır makro kodu içerebilir. Tehlikesini ve bir çalışma zamanı hata işleme işlemi "hata yakalama" olarak adlandırılır Uygulama hata nasıl belirten yönergeler kümesi, "hata işleme yordamını" veya "hata işleyicisi" denir. Daha fazla bilgiMicrosoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Çeşitli hatalar yakalanan, Visual Basic kodu çalışırken karşılaşabilir. Hata yakalama, Microsoft Excel'de aşağıdaki işlev ve deyimleri kullanarak yararlanabilirsiniz. Hakkında hata bildirimiAçık bir hata bildirimi, Visual Basic for Applications, başlatmak veya hata yakalama durdurmak neden olur. Ayrıca, açık hata bildirimi ifadeler hatayla karşılaşılırsa, yürütülecek bir dizi belirtir.Ek bilgi için lütfen aşağıdaki Microsoft Knowledge Base'deki makaleleri bakın: 141571
(http://support.microsoft.com/kb/141571/EN-US/
)
Bir makro tanıtıcı hatalar için "Hatası" nasıl kullanılır Işlev hataERR işlevi karşılaşılan hata verir.Hata işlevini kullanarak bir örnek:
Error code Error message
---------- -------------
3 Return without GoSub
5 Invalid procedure call
6 Overflow
7 Out of memory
9 Subscript out of range
10 Duplicate definition (versions 5.0 and 7.0)
10 This array is fixed or temporarily locked (version97)
11 Division by zero
13 Type mismatch
14 Out of string space
16 String formula too complex (versions 5.0 and 7.0)
16 Expression too complex (version 97)
17 Can't perform requested operation
18 User interrupt occurred
20 Resume without error
28 Out of stack space
35 Sub or function not defined (versions 5.0 and 7.0)
35 Sub, function, or property not defined (version 97)
47 Too many DLL application clients (version 97)
48 Error in loading DLL
49 Bad DLL calling convention
51 Internal error
52 Bad file name or number
53 File not found
54 Bad file mode
55 File already open
57 Device I/O error
58 File already exists
59 Bad record length
61 Disk full
62 Input past end of line
63 Bad record number
67 Too many files
68 Device unavailable
70 Permission denied
71 Disk not ready
74 Can't rename with different drive
75 Path/File access error
76 Path not found
91 Object variable not set (versions 5.0 and 7.0)
91 Object variable or With block variable not set
(version 97)
92 For Loop not initialized
93 Invalid pattern string
94 Invalid use of Null
95 User-defined error (versions 5.0 and 7.0 only)
298 System DLL could not be loaded (version 97)
320 Can't use character device names in specified file names
(version 97)
321 Invalid file format (version 97)
322 Can't create necessary temporary file (version 97)
323 Can't load module; invalid format (versions 5.0 and 7.0)
325 Invalid format in resource file (version 97)
327 Data value named was not found (version 97)
328 Illegal parameter; can't write arrays (version 97)
335 Could not access system registry (version 97)
336 ActiveX component not correctly registered (version 97)
337 ActiveX component not found (version 97)
338 ActiveX component did not correctly run (version 97)
360 Object already loaded (version 97)
361 Can't load or unload this object (version 97)
363 Specified ActiveX control not found (version 97)
364 Object was unloaded (version 97)
365 Unable to unload within this context (version 97)
368 The specified file is out of date. This program requires
a newer version (version 97)
371 The specified object can't be used as an owner form for
Show (version 97)
380 Invalid property value (version 97)
381 Invalid property-array index (version 97)
382 Property Set can't be executed at run time (version 97)
383 Property Set can't be used with a read-only property
(version 97)
385 Need property-array index (version 97)
387 Property Set not permitted (version 97)
393 Property Get can't be executed at run time (version 97)
394 Property Get can't be executed on write-only property
(version 97)
400 Form already displayed; can't show modally (version 97)
402 Code must close topmost modal form first (version 97)
419 Permission to use object denied (version 97)
422 Property not found (version 97)
423 Property or method not found
424 Object required
425 Invalid object use (version 97)
429 ActiveX component can't create object or return
reference to this object (version 97)
430 Class doesn't support OLE Automation
430 Class doesn't support Automation (version 97)
432 File name or class name not found during Automation
operation (version 97)
438 Object doesn't support this property or method
440 OLE Automation error
440 Automation error (version 97)
442 Connection to type library or object library for remote
process has been lost (version 97)
443 Automation object doesn't have a default value
(version 97)
445 Object doesn't support this action
446 Object doesn't support named arguments
447 Object doesn't support current locale settings
448 Named argument not found
449 Argument not optional
449 Argument not optional or invalid property assignment
(version 97)
450 Wrong number of arguments
450 Wrong number of arguments or invalid property assignment
(version 97)
451 Object not a collection
452 Invalid ordinal
453 Specified DLL function not found
454 Code resource not found
455 Code resource lock error
457 This key is already associated with an element of this
collection (version 97)
458 Variable uses a type not supported in Visual Basic
(version 97)
459 This component doesn't support events (version 97)
460 Invalid clipboard format (version 97)
461 Specified format doesn't match format of data
(version 97)
480 Can't create AutoRedraw image (version 97)
481 Invalid picture (version 97)
482 Printer error (version 97)
483 Printer driver does not support specified property
(version 97)
484 Problem getting printer information from the system.
Make sure the printer is set up correctly (version 97)
485 Invalid picture type (version 97)
486 Can't print form image to this type of printer
(version 97)
735 Can't save file to Temp directory (version 97)
744 Search text not found (version 97)
746 Replacements too long (version 97)
1000 Classname does not have propertyname property
(versions 5.0 and 7.0)
1001 Classname does not have methodname method
(versions 5.0 and 7.0)
1002 Missing required argument argumentname
(versions 5.0 and 7.0)
1003 Invalid number of arguments (versions 5.0 and 7.0)
1004 Methodname method of classname class failed
(versions 5.0 and 7.0)
1005 Unable to set the propertyname property of the classname
class (versions 5.0 and 7.0)
1006 Unable to get the propertyname property of the classname
class (versions 5.0 and 7.0)
31001 Out of memory (version 97)
31004 No object (version 97)
31018 Class is not set (version 97)
31027 Unable to activate object (version 97)
31032 Unable to create embedded object (version 97)
31036 Error saving to file (version 97)
31037 Error loading from file (version 97)
142138
(http://support.microsoft.com/kb/142138/EN-US/
)
OFF: Bir açıklama yakalanabilir bir hata Visual Basic'te uygulamalar için Hata işlevHata işlevini, belirli hata sayıya karşılık gelen hata iletisi döndürür.Hata işlevini kullanmaya örnek: Hata bildirimiHata bildirimi hata geçtiği Err işleve bir özel hata numarası atamanıza olanak sağlayarak taklit eder. Bu kullanıcı tanımlı hata değerleri için yordamlarınıza tanımlamak ve her zaman VARIANT veri tipi değişkenleri depolanan değerlerdir. Bu tür bir hata değeri BIR çok yordamlarda, birden fazla bağımsız değişken kabul etmek ve bir değer kullanılır. Örneğin, dönüş değeri, yalnızca bağımsız bir belirli aralıkta geçerli olduğunu varsayın. Kullanıcının sağladığı bağımsız değişkenler için yordamınız test edebilirsiniz ve bağımsız değişkenler kabul edilebilir aralıkta, yordamın dönüş uygun hata değeri olabilir.Hata alt türü olan bir Variant veri türü, "hata değeri" terimi kullanıldığında, bu genellikle bir değişkeni, Variant türü olduğunu ve Visual Basic for Applications, kullanıcı tanımlı bir hata olarak tanıdığı bir değer içerdiği anlamına gelir. Hata değerleri, bir yordam hata koşulu ortaya çıkan belirtmek için kullanılır. Sıradan değişkenleri ve değil hataları tanındığından normal çalışma zamanı hataları farklı olarak, bu hatalar kodunuzu kesme değil. Yordamlarınıza bu hata değerleri için sınama ve uygun düzeltici eylemleri. Hata bildirimi, çalışma zamanı hataları benzetimini yapmak için de kullanabilirsiniz. Uygulamalarınızı sınarken veya bir çalıştırma hatası eşit olacak şekilde belirli bir koşulu değerlendirmek istediğinizde özellikle yararlıdır. Hata kodu için bir <a0>hata</a0> deyiminde hata sağlayarak Visual Basic for Applications çalışma zamanı hatası benzetimi. Hata bildirimi hataları kendi kullanıcı tanımlı bir Visual Basic for Applications çalışma zamanı hatası karşılık gelmeyen bir hata kodu sağlayarak oluşturmak için de kullanılabilir. Bu makalenin ("Hata işlev" bölümü) altında yerleşik hataların listesini içeren bir tablo görüntülenir. Bu aşamada, Visual Basic for Applications tüm kullanılabilir numaralarını yerleşik hatalar için kullanmaz. Ileride Visual Basic for Applications'ın sürümleri, dahili numaraları gibi daha yerleşik - hatalara eklenecek olan artacaktır. Hata numaralarınızın 50.000 adresindeki başlatın ve daha sonra olası çakışmaları önlemek için en çok 65.535 inin önerilir. Örnek kullanarak hata bildirimi Benzet için çalışma zamanı hatası: CVErr işleviCVErr işlevi hata değeri oluşturmak için kullanılır. Bir bağımsız değişken ya da bir tamsayı olmalı veya bir tamsayı içeren bir de?i?ken olarak işlev alır CVErr.Yerleşik hata değerleri kullanmaMicrosoft Excel'de yedi yerleşik hata değerleri vardır. Hata numarasını (sabit), harflerden oluşan bir hata değeri ve dönüştürülmüş bir hata değeri, aşağıdaki tabloda gösterilmektedir.Error number (Constant) Literal error value Converted error value ----------------------------------------------------------------------- xlErrDiv0 [#DIV/0!] CVErr(xlErrDiv0) xlErrNA [#N/A] CVErr(xlErrNA) xlErrName [#NAME?] CVErr(xlErrName) xlErrNull [#NULL!] CVErr(xlErrNull) xlErrNum [#NUM!] CVErr(xlErrNum) xlErrRef [#REF!] CVErr(xlErrRef) xlErrValue [#VALUE!] CVErr(xlErrValue) Yerleşik hata kullanmaya örnek Değerler: Hata kodu merkezileştirme.Visual Basic for Applications makroları için hata işleme kodu eklediğinizde, aynı hataları tekrar tekrar işlenen fark. Kodunuzu ve birkaç genel hata durumları işlemek için hata işleme kodunuzu çağırabileceğiniz yordamlar yazarak, kod yazmak için gereken çaba boyutunu azaltabilirsiniz.Aşağıdaki örnek bir işlev yordamının oluştu hata karşılık gelen bir ileti görüntüler; mümkün olan yerlerde, kullanıcının belirli bir düğmeyi seçerek sonraki gerçekleştirilecek eylemi sağlar. Sonra kodu numarası da denilen yordamına döndürür. Kullanıcı işleme kesmeleriBir kullanıcı, CTRL + BREAK veya ESC (COMMAND + NOKTA Macintosh'ta) tuşlarına basarak bir Visual Basic for Applications yordamı kesebilirsiniz. Tamamlanmış uygulamalarınızda yordamlarıyla kesmeler devre dışı bırakmak olasıdır. Ancak, kullanıcı kesme yordamı bittiğinde, devre dışı bırakmayın, böylece, dosyaları kapatabilir, paylaştırılmış kaynaklarla bağlantısını sona erdirmek veya değiştirilmiş değişkenleri kullanıcıya uygulamanın denetimi döndürmeden önce geri kesme oluştuğunda yordamınız bildirilir emin olabilirsiniz.EnableCancelKey ayarlayarak kullanıcı kesme yordamlarınıza yakalayabilir xlErrorHandler özelliği. Bu özelliği ayarlandığında, tüm kesmeler bir çalışma zamanı hata numarası 18, bir oturum açma hatası'ı kullanarak yakalanan oluşturacak ifadesi. Yordamı durdurmak ve bu programdan çıkmak için hatayı işleyebilir. Kesme yordamı yakalanan bir çalıştırma hatasından sonra devam etmek için Sürdür deyimi kullanılırsa, göz ardı edilir. Kullanıcı kesme tamamen yoksayması için xlDisabled EnableCancelKey özelliğini ayarlayarak da olasıdır. Bu durumda, Microsoft Excel, kullanıcı tarafından tüm denemeleri çalışan yordamı kesme yok sayar. Işlem varsayılan kesme geri yüklemek için <a0></a0>, xlInterrupt için <a0>EnableCancelKey</a0> özelliğinin ayarını değiştirin. Yordamı, Yürütme tamamlandığında, her kullanıcı kesme kalıcı olarak devre dışı bir yordam önlemek için Microsoft Excel'in her zaman EnableCancelKey</a0> özelliğinin varsayılan ayarını xlInterrupt için yükler. Kesmeleri doğru kodunuz içinde işlenme emin olmak için açıkça devre dışı veya yordamı yürütülen her kesmelere tuzak gerekir. Bunu unutulmamalıdır, tek bir kesme isteği işleyicisi her yordam için kullanılabilir ve aynı işleyicisi Bu yordamla karşılaştı, tüm çalışma zamanı hataları için kullanılır. Aşağıdaki örnek, büyük bir zaman tamamlamak için süre gerektiren bir yordam gösterir. Hata yordamı kullanıcı keser, yakalanan. Kullanıcı kesme ilk yordamı gerçekten durdurulacak sonra bu yordamın düzenli bir şekilde çıkılıyor olduğunu doğrular. Özgeçmiş EkstresiBir hata yordamı tamamlandıktan sonra devam ifadesi kod yürütülmesine devam ettirir.ReferanslarExcel 97Yakalama makro hataları hakkında daha fazla bilgi için dizin sekmesini Microsoft tıklatın 97 Visual Basic Yardımı'nı Excel, aşağıdaki metni yazın.Yakalama hataları ve "Yakalanabilir hatalar" konuya dönmek için seçili metni çift tıklatın. Excel 7.0Makro hataları yakalama hakkında daha fazla bilgi için dizin Microsoft sekmesinde tıklatın 7.0 Yardım Excel, aşağıdaki metni yazın.hata yakalama ve "Hata yakalama" konusuna gidin seçili metni çift tıklatın. Excel 5.0"Visual Basic Kullanım Kılavuzu'nda" sürüm 5. 0, Bölüm 9, "İşleme hataları ve hata değerleri," aşağıdaki konulara bakın:
Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:146864
(http://support.microsoft.com/kb/146864/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste