هزار و یک شب اکسل - شب پنجاه و ششم - جمع اوری اطلاعات یک محدوده (میتونه یک ستون هم باشه) در یک سل با تابع

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198
    • 84.00

    هزار و یک شب اکسل - شب پنجاه و ششم - جمع اوری اطلاعات یک محدوده (میتونه یک ستون هم باشه) در یک سل با تابع

    با درود
    بحثی رو چندی پیش یکی از دوستان سوال داشتن و تو ترفندی تا حدودی استاد وطن پرست توضیحی رو براش آوردن - (همون Justify پست قبلی در مرج اطلاعات ) اما خب این روش با محدودیت هایی هم همرا بود حالا اینجا میخوایم یه تابه جدید اظافه کنیم و ازش بهره بگیریم - خب یک ماژول جدید ایجاد کنید ( نگین بلد نیستم که پوستتون کندست - این یعنی پست های قبلی رو نخوندین)

    کد زیر که در واقع یک تابع جدید هستش رو کپی کنین داخلش

    کد:
    Function csvRange(myRange As Range, Optional textQualify As String)
        
        Dim csvRangeOutput
        For Each entry In myRange
            If Not IsEmpty(entry.Value) Then
                csvRangeOutput = csvRangeOutput & textQualify & entry.Value & textQualify & " "
            End If
        Next
        csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1)
    End Function
    حالا مثلا در یک ستون اطلاعاتی رو مانند زیر داریم

    Click image for larger version

Name:	1.JPG
Views:	1
Size:	83.8 کیلو بایت
ID:	142169

    فرمول رو توی D8 بنویسین و نتیجه رو مشاهده کنین - در ضمن نیاز به بزرگ کردن ستون نداریم من فقط جهت دیدن کامل متن اینکارو کردم

    خوب این فرمول رو به صورت ستونی هم میشه نوشت یعنی

    کد:
    =csvRange(A:A)
    نکته بعد این که به محدودیت داده تویه یه سل توجه کنین - و بعدش اینکه به صورت محدوده ای هم میتونیم بنویسیم یا حتی سطری

    و اما نکته بعد اینکه از بخش alignment راست به چپ برای فارسی استفاده کنین مخصوصا زمانی که تلفیفی از غدد و فارسی و انگلیسی داریم مثل ورد که بعضی موقع ها اینو رعایت نمیکنم و میبینیم وسط نوشتن فارسی یه کلمه انگلیسی میخوایم بنویسیم که یهو میاد اول خط فارسی


    در ضمن بابات نبودن معذرت میخوام راستش دلایلش زیاده اما دیگه دیگه ................
    در پناه خداوندگار ایران زمین باشید و پیروز
چند لحظه..