جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'آفیس'.
1 نتیجه پیدا شد
-
جدا کردن متن فارسی (یا عربی) از متن انگلیسی (یا لاتین) در اکسل
rez227 پاسخی ارسال کرد برای یک موضوع در آموزش های عمومی
برای یک حالت خاص که در یک سلول ترکیبی از متن فارسی و انگلیسی داشته باشیم و بخواهیم آنها را از هم جدا کنیم همیشه نمیتوان از روشهای معمول استفاده کرد. حالت ۱)توضیحات را با یک مثال شروع میکنم که سوال یکی از کاربران انجمن آفیس فرساران است: در مثال فوق اگه دقت کنید در هر سلول بین متون فارسی و لاتین دقیقا 3 فاصله وجود دارد و همچنین در تمام موارد در سمت راست متن لاتین و در سمت چپ متن فارسی قرار دارد یعنی بصورت ترکیبی (مثلا aبcد) نیامده است. پاسخ این سوال در انجمن آفیس فرساران داده شده است که با استفاده از تجزیه و ترکیب متن در اکسل انجام میشود. در ستون A دادهایی داریم که هم متن فارسی و هم متن لاتین می باشد و هیچگونه نظمی خاصی ندارد که بتوان با mid آنها را جدا کرد اگه ممکنه راهنمایی کنید؟ Yield Tax مالیات بازده Yield Variance اختلاف بازده- تغییر پذیری بازده Yo -Yo-Stock سهام متزلزل- سهام بیثبات Zero Base Budgeting بودجه بندی بر مبنای صفر - روش بودجه ریزی از صفر Zero Defect بدون نقص Zip Code کد پستی Zone ناحیه Zone Free منطقه آزاد Zone Freight Rate نرخ کرایه منطقهای Zone of Acceptance حیطه پذیرش Zone Pricing قیمت بندی ناحیهای Zoning منطقه بندی- ناحیه بندی ---------------------------------------------------------------------- حالت ۲)در حالتی مثل شکل زیر که متون بصورت ترکیبی میباشد و فاصله بین متون لاتین و فارسی در سلولها متفاوت است، دیگر نمیتوان از راه حل حالت ۱ (بالا) استفاده کرد. برای این حالت باید از کد ماکرو در اکسل استفاده نمود. ابتدا سلولهایی که میخواهید متون انگلیسی و فارسی را از هم جدا کنید انتخاب نمایید (مثل شکل بالا)، سپس کلیدهای Alt + F11 را فشار دهید یا از تب Developer قسمت code گزینه Visual Basic را انتخاب کنید تا پنجره Microsoft Visual Basic for applications window ظاهر شود. در این پنجره از تب Insert گزینه Module را انتخاب نمائید. در پنجره جدید باز شده کدهای زیر را کپی کنید. Sub ExtractArabicFromEng() 'MVP OShon VBATools Dim x%, el As Range, EngStr$, ArabStr$, r As Range: Set r = Selection If r.Column <> 1 Then MsgBox "Select only one column.": Exit Sub Const CharList$ = "[A-Za-z0-9]" Const Znaki$ = "[ ]" 'or another signs Application.ScreenUpdating = False For Each el In r EngStr = "": ArabStr = "" For x = Len(el.Text) To 1 Step -1 If Mid(el.Text, x, 1) Like CharList Then EngStr = Mid(el.Text, x, 1) & EngStr ElseIf Mid(el.Text, x, 1) Like Znaki Then EngStr = Mid(el.Text, x, 1) & EngStr ArabStr = Mid(el.Text, x, 1) & ArabStr Else ArabStr = Mid(el.Text, x, 1) & ArabStr End If Next x el.Offset(, 1).Value = Trim(ArabStr) el.Offset(, 2).Value = Trim(EngStr) Next el Application.ScreenUpdating = True End Sub در پایان دکمه یا کلید F5 را فشار دهید تا عملیات جداسازی انجام شود. روش فوق در همه حالات قابل استفاده است. منبع: social.technet.microsoft.com , ترفند ها