السلام عليكم
أخي العزيز أبو البراء
السر يكمن من آخر قيمتين في الكود true , true
القيمة الأولى true ترجع لخاصية رأس النطاق header
لما تعملها true يعنى أنك ستستخدم هذه الخاصية
أما لو عملتها false يعنى أنك لا تريد استخدامها وفي هذه الحالة لا تهم القيمة الثانية سواء كانت true أو false
القيمة الثانية true ترجع لاستخدام الخلية الأولى في النطاق
لما تعملها true يعنى أنك تريد ظهور بيانات الخلية الأولى f9 في النطاق F9:F12
ولما تعملها false يعنى أنك لا تريد ظهور بيانات الخلية الأولىf9 في النطاق F9:F12 بل الخلية الثانية f10
نحلل الآن الكود الذي في الأعلى
الكود سيحضر لك البيانات التي في النطاق F9:F12
true الأولى يعنى قم بتفعيل خاصية راس النطاق HEADER
true الثانية يعنى قم بجلب البيانات الموجودة في رأس النطاق المحدد وهو f9
عندما يتم التنفيذ سيفاجأ الكود أن الخلية F9 (الموجودة في الملف المراد جلب البيانات منه ) مدمجة يعنى فيها خلل سيكتب لك f1 يعنى الكود ها يقول لك :
أنت يا سيدي حددت لي الخاصية HEADER على أنها TRUE يعنى غضبا عني لا زم أجيب قيمة أول خليةF9 وأنا ما عرفتش أجيب البيانات اللي في الخلية دي لأن فيها مشكلة ولكنها الخلية الأولي في النطاق المحدد
لاحظ أن F1 يعنى خطأ في رأس العمود الأول من النطاق المحدد
F2 يعنى خطأ في راس العمود الثاني من لنطاق المحدد
(لن تظهر عندك F2 لأنك حددت عمود واحد F9:F12 ولكن يمكن أن تظهر عندما تحدد أكثر من عمود مثلا B2:T5 ومعنى F2 هو أن الخلل يوجد في رأس العمود الثاني من النطاق وهو الخلية C2)
وهكذا F6 يعنى خطأ في رأس العمود السادس من النطاق المحدد
طيب سوال : لو دخلنا على نفس الكود أعلاه وغيرنا آخر قيمة من TRUE ألى FALSEكيف ستظهر النتائج ؟
الجواب لا حظ أن النطاق هو F9:F12 والقيمة الأولى TRUE يعنى استخدام خاصة هايدر
والقيمة الثانية FALSE يعنى أن الكود سيحضر لك البيانات الموجودة في النطاق F10:F12 وليس F9:F12
يعنى أن الكود سيتجاهل رأس النطاق f9
سوال ثاني : ماذا لو كانت القيمة الأولى تساوي FALSE , ما معنى هذا ؟
الجواب عندما تكون القيمة الأولى FALSE فإن القيمة الثانية لن تعمل سواء كانت FALSE أو true
وهذا يعنى أنك لا تريد استخدام الخاصية هيدر ولا تريد البيانات الموجودة في رأس النطاق
الخلاصة سيكون لدينا ثلاث حالات للكود
1) True , True
2) True , False
3) False , True = False , False حالة واحدة