تجاوز عند حساب CONST في VBA
سؤال
ويتسبب هذا الإعلان حدث تجاوز في VBA:
Const OVERFLOWS As Long = 10 * 60 * 60
وحين تعيين قيمة مباشرة على ما يرام:
Const COMPILES_OK As Long = 36000
وكيف تقنع VBA لعلاج الأعداد الصحيحة حرفية كما يتوق؟
والشكر
المحلول
وإضافة long
&
احقة إلى رقم واحد على الأقل:
Const OVERFLOWS As Long = 10& * 60 * 60
لاحظ أن استخدام وظيفة CLNG
لتحويل القيم إلى long
لن تنجح، لأن VBA لا يسمح بتعيين قيمة الإرجاع من وظيفة إلى ثابت.
نصائح أخرى
http://support.microsoft.com/kb/191713 : عبارة عن ملخص لطيفة الإعلان نوع الحروف المتوفرة في VBA / VB4-6.
وبالنسبة لأولئك الذين يجدون ورمز مقصور على فئة معينة قليلا، كبديل لاستخدام وظيفة CLNG الذي يحول رقم لفترة طويلة
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
هل يمكن بعد ذلك ان تفعل شيئا مماثلا للثابت واحد
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
ويمكن أيضا إلحاق حرف نوع من الحرفية: CONST الفيضانات وطويل = (10 و * 60 * 60) (واحد هو suffucient فعلا بسبب الطريقة محرك VBA يقيم التعبير).
لا تنتمي إلى StackOverflow