كيفية دمج الخلايا في excel باستخدام كود vba
في VBA، توجد طريقة “MERGE” يمكنك استخدامها لدمج نطاق من الخلايا أو حتى نطاقات متعددة في خلية واحدة. تحتوي هذه الطريقة على وسيطة “Across” وهي اختيارية. إذا حددت TRUE، فسيتم دمج كل صف في النطاق بشكل منفصل، وإذا حددت FALSE، فسيتم دمج النطاق بأكمله في صف واحد.
خطوات استخدام VBA لدمج الخلايا:
- أولاً، تحتاج إلى تحديد نطاق الخلايا التي تريد دمجها.
- بعد ذلك، اكتب نقطة (.) لتحصل على قائمة الخصائص والطرق واختر “دمج” من تلك القائمة أو يمكنك كتابتها مباشرة.
- بعد ذلك، تحتاج إلى ضبط الوسيطة “Across” على TRUE أو FALSE.
- في النهاية، قم بتشغيل هذا الكود لدمج النطاق.
هنا هو الرمز.
Range("A1:A2").Merge False
وإذا كنت تريد دمج الصفوف عبر النطاق بأكمله، فيمكنك استخدام TRUE للوسيطة عبر.
Selection.Merge Across:=True
في الكود أعلاه قمت بتحديد نطاق وطريقة دمج وعبر كصحيح. وقام بدمج كافة الصفوف في النطاق المحدد.
لنفترض الآن أنك تريد دمج نطاق الخلايا من ورقة عمل أخرى، ولا تحتاج إلى تمكينه أولاً. يمكنك ببساطة الرجوع إلى جدول البيانات أولاً ثم استخدام طرق الدمج مع التراجع الذي تريد دمجه.
Worksheets("Sheet1").Range("A1:A2").Merge
وبالمثل، يمكنك أيضًا الرجوع إلى مصنف عن طريق تحديد اسم المصنف.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
دمج نطاق ومحاذاة محتويات الخلية
الآن عند دمج خليتين أو أكثر، تحتاج إلى محاذاة المحتوى الموجود في الخلية. انظر إلى اللقطة أدناه حيث قمت بدمج الخلايا A1 وA2 وتمت محاذاة القيمة الموجودة في الخلايا إلى الأسفل. لحل هذه المشكلة، يمكنك استخدام خاصية المحاذاة ومحاذاة محتويات الخلية إلى المركز والوسط بحيث يسهل عليك القراءة.
With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With
دمج النص ثم الدمج
دعونا نتحدث عن سيناريو الحياة الحقيقية. لديك نص في نطاق من الخلايا وتحتاج إلى دمج تلك الخلايا، ولكنك لا تريد أن تفقد المحتوى الموجود لديك. حسنًا، يمكنك كتابة حلقة تعليمات برمجية على النطاق بأكمله باستخدام كل منها ودمج النص ثم إضافته إلى النطاق المدمج في النهاية.
- في الجزء الأول، لديك متغيرات يمكنك استخدامها لتخزين قيم النطاق وتعيين نفسها.
- في الجزء الثاني لديك LOOP لدمج قيم كل خلية لإنشاء سلسلة جديدة معها.
- في الجزء الثالث، قم بدمج النطاق وإضافة السلسلة المدمجة وتطبيق التفاف الكلمات ومحاذاة محتويات الخلية.
هنا هو الرمز الكامل.
Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub