یکی از کاربردیترین ویژگیهای اکسل، ویژگی Text to Columns است که به شما امکان میدهد به راحتی محتویات سلول را بر اساس هر معیاری که مشخص میکنید به سلولهای جداگانه تقسیم کنید. یکی از روشهای استفاده از این ویژگی این است که به آن اجازه میدهیم کاراکترهای درون سلولها را بشناسد و از آن کاراکترها برای راهاندازی جایی که باید تقسیم شود استفاده کند. به این نوع تقسیم، تقسیم محدود می گویند .
ممکن است تعجب کنید که چگونه می توانید یک عملیات متن به ستون محدود شده را در ماکرویی که ممکن است بنویسید انجام دهید. انجام این کار با استفاده از روش TextToColumns در انتخابی که تنظیم کرده اید به اندازه کافی آسان است. ماکرو بسیار ساده زیر را در نظر بگیرید:
Sub ExampleSplit1()
Selection.TextToColumns _
Destination:=Range("A2"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=True, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:="-"
End Sub
به تمام متغیرهایی که می توانید برای متد TextToColumns تنظیم کنید توجه کنید. بیشتر این متغیرها فقط به این دلیل ضروری هستند که این یک تقسیم محدود است. متغیرها آنچه را که به عنوان جداکننده توسط روش استفاده می شود، تعیین می کنند. با شروع خط Tab، متغیرها مستقیماً با تنظیماتی مطابقت دارند که در مرحله 2 از برنامه تبدیل متن به ستون، اگر به صورت دستی از این ویژگی استفاده میکردید، انجام میدادید. بسته به اینکه بخواهید از آن کاراکتر به عنوان جداکننده استفاده شود، میتوانید Tab، Semicolon، Comma و Space را روی True یا False قرار دهید.
همچنین میتوانید متغیر Other را بسته به اینکه میخواهید یک جداکننده «تعریف شده توسط کاربر» داشته باشید، روی True یا False قرار دهید. اگر آن را روی True تنظیم کنید، باید متغیر OtherChar را برابر با کاراکتری که می خواهید به عنوان جداکننده استفاده کنید، تنظیم کنید.
اگر از متد TextToColumns چندین بار در یک ماکرو استفاده میکنید، تنها کاری که باید در فراخوانیهای بعدی انجام دهید تغییر متغیرهایی است که با فراخوان قبلی متفاوت هستند. برای مثال، اجازه دهید بگوییم که شما دو بار متد را در یک ماکرو فراخوانی میکنید، و بار اول میخواهید تقسیم بر روی نمونهای از کاراکتر خط تیره باشد، اما بار دوم میخواهید روی هر نمونهای از حروف کوچک x باشد. . شما می توانید ماکرو را به این صورت کنار هم قرار دهید:
Sub ExampleSplit2()
Dim objRange1 As Range
Dim objRange2 As Range
Set up the ranges
Set objRange1 = Range("A2:A20")
Set objRange2 = Range("A21:A35")
Do the first parse
objRange1.TextToColumns _
Destination:=Range("A2"), _
DataType:=xlDelimited, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:="-"
Do the second parse
objRange2.TextToColumns _
Destination:=Range("A21"), _
DataType:=xlDelimited, _
OtherChar:="x"
End Sub