کد ویژوال بیسیک جهت sort کردن تخصصی

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • majidjpg
    • 2011/10/29
    • 3

    کد ویژوال بیسیک جهت sort کردن تخصصی

    با سلام خدمت اساتید عزیزم.
    یک ستون در فایل نمونه پیوست دارم که بخشی از آن عددی بوده (مانند 030701) و بخشی نیز اعدادی هستند که در انتهای آن فقط یک کاراکتر حرف f (مانند 030701f) آمده است.
    قصد دارم این اطلاعات را طوری sort کنم که سلول 030701f بلافاصله پس از سلول 030701 بیاید. اما اکسل به این موضوع توجه نکرده و ابتدا اعداد را دسته بندی کرده و در انتها سلولهای شامل کاراکتر را مرتب می کند.
    بنده می خواهم صرفا با یک کد ویژوال بیسیک (و نه اضافه کردن ستونهای کمکی اضافی- چون حجم فایلم همینجوری بالا هست و با اینکار بشدت بالا خواهد رفت) اینکار را انجام دهم
    لطفا برای درک بهتر سوال حتما فایل پیوست را مشاهده فرمایید.
    پیشاپیش از توجه شما متشکرم
    فایل های پیوست شده
  • abootorab

    • 2014/10/17
    • 351

    #2
    نوشته اصلی توسط majidjpg
    با سلام خدمت اساتید عزیزم.
    یک ستون در فایل نمونه پیوست دارم که بخشی از آن عددی بوده (مانند 030701) و بخشی نیز اعدادی هستند که در انتهای آن فقط یک کاراکتر حرف f (مانند 030701f) آمده است.
    قصد دارم این اطلاعات را طوری sort کنم که سلول 030701f بلافاصله پس از سلول 030701 بیاید. اما اکسل به این موضوع توجه نکرده و ابتدا اعداد را دسته بندی کرده و در انتها سلولهای شامل کاراکتر را مرتب می کند.
    بنده می خواهم صرفا با یک کد ویژوال بیسیک (و نه اضافه کردن ستونهای کمکی اضافی- چون حجم فایلم همینجوری بالا هست و با اینکار بشدت بالا خواهد رفت) اینکار را انجام دهم
    لطفا برای درک بهتر سوال حتما فایل پیوست را مشاهده فرمایید.
    پیشاپیش از توجه شما متشکرم
    با درود
    دوست عزیز شما ابتدا فرمت سلول های ستون A رو به Text تغییر بدین، مجددا مقادیر رو در ستون A وارد کنید (ورود مجدد مقادیر ستون A به این دلیل باید انجام دهید که چون از ابتدا فرمت آنها Text نبوده، پس از تغییر فرمت به Text مقادیری که آخر آن حرف f نیست صفر ابتدای آنها حذف میشود و میبایست مجدد وارد کنید. البته اینکار واسه یک بار انجام میدهید و برای مقادیر جدید که اضافه میکنید نیازی نیست) و سپس کد زیر را اجرا کنید.
    کد PHP:
    Sub SortSpecial()
        
    With Sheet1.Sort
            
    .SortFields.Clear
            
    .SortFields.Add Key:=Sheet1.Columns(1), SortOn:=xlSortOnValuesOrder:=xlAscending
            
    .SetRange Sheet1.Range("A1:A19")
            .
    SortMethod xlPinYin
            
    .Apply
        End With
    End Sub 
    امیدوارم با اینکار مشکلتون برطرف بشه.
    موفق باشین.

    کامنت

    چند لحظه..