سؤال

ويتسبب هذا الإعلان حدث تجاوز في 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 يقيم التعبير).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top