جاستین شماره قطعاتی دارد که به طور معمول در یک کاربرگ از آنها استفاده می کند، مانند 660501C016971. او میخواهد یک قالب سفارشی را روی سلول اعمال کند و شماره قطعه بهطور خودکار با خط تیره در مکان مناسب، مانند 6605-01-C01-6971 نمایش داده شود.
متأسفانه این کار را نمی توان با یک قالب سفارشی انجام داد. چرا؟ زیرا فرمت های سفارشی برای نمایش اعداد هستند نه متن. یک قالب متنی وجود دارد که با علامت "در علامت" (@) مشخص شده است، اما همین است. هیچ دیگری وجود ندارد و هیچ دیگری را نمی توان تعریف کرد.
از آنجایی که نمیتوان از قالبهای سفارشی استفاده کرد، باید راهحلی پیدا کرد. یکی از راههای انجام این کار این است که شمارههای قطعه خود را بررسی کنید و ببینید آیا میتوان قسمت متن شماره را حذف کرد و شماره قطعه همچنان قابل استفاده است. به عنوان مثال، شماره جاستین 660501C016971 است. اگر فرمت شماره قطعه همیشه حرف C را در همان نقطه از شماره قطعه صدا میکند (و هیچ حرف احتمالی دیگری در آنجا وجود ندارد)، میتوانید به سادگی C را حذف کنید و با شماره 660501016971 باقی بمانید. چون یک عدد است. ، می توانید یک قالب سفارشی برای آن ایجاد کنید که شامل خط تیره در مکان های مناسب و حرف C در جای مناسب باشد. فرمت سفارشی به شکل زیر خواهد بود:
0000-00-C00-0000
با فرمت اعمال شده روی سلولی که شامل شماره 660501016971 است، در نهایت با یک شماره قطعه با فرمت صحیح نمایش داده می شود: 6605-01-C01-6971. با این حال، این رویکرد دارای اشکالاتی است. بزرگترین اشکال این است که اگر بخواهید شمارههای قطعه را به برنامه دیگری صادر کنید، شاید به عنوان یک فایل CSV، چیزی که در نهایت صادر میشود، شماره اصلی بدون قالببندی یا حرف C است.
راه حل دیگر استفاده از فرمولی برای نمایش شماره قطعات در قالب مورد نظر شما است. می توانید آنها را در یک سلول بدون خط تیره وارد کنید و سپس از فرمول برای اضافه کردن خط تیره ها در مکان های مناسب استفاده کنید. بنابراین، هنگام ایجاد گزارش، ستونی را که شامل شماره قطعه است بدون خط تیره پنهان می کنید. در اینجا یک فرمول کار می کند، به شرطی که شماره قطعه بدون خط تیره در سلول A1 باشد:
=LEFT(A1,4) & "-" & MID(A1,5,2) & "-" & MID(A1,7,3) & "-" & RIGHT(A1,4)
اگر کمی با شمارههای قطعه کار میکنید، ممکن است راهی برای اضافه کردن و حذف خط تیرهها به راحتی بخواهید. بهترین راه برای انجام این کار با ماکرو است. می توانید یک ماکرو ایجاد کنید که به شما امکان می دهد خط تیره ها را از یک شماره قطعه در محدوده انتخاب شده ای از سلول ها اضافه و حذف کنید. نمونه زیر نمونه ای از این ماکروها است.
Sub DashesIn()
DoDashes ("In")
End Sub
Sub DashesOut()
DoDashes ("Out")
End Sub
Private Sub DoDashes(What As String)
Dim c As Range
Dim J As Integer
For Each c In Selection.Cells
If c.Value <> "" Then
J = InStr(c.Value, "-")
Select Case What
Case "Out"
While J > 0
c.Value = Left(c.Value, J - 1) & _
Mid(c.Value, J + 1, Len(c.Value))
J = InStr(c.Value, "-")
Wend
Case "In"
If J = 0 Then
c.Value = _
Left(c.Value, 4) & "-" & _
Mid(c.Value, 5, 2) & "-" & _
Mid(c.Value, 7, 3) & "-" & _
Right(c.Value, 4)
End If
End Select
End If
Next c
End Sub
توجه داشته باشید که در واقع سه ماکرو در این لیست وجود دارد. اولی (DashesIn) خط تیره ها را به شماره قطعه اضافه می کند، در حالی که دومی (DashesOut) آنها را حذف می کند. به سادگی سلول های حاوی شماره قطعه را انتخاب کنید و سپس ماکرو را اجرا کنید که عملیات مورد نظر شما را انجام می دهد.
هم DashesIn و هم DashesOut روال مشترک را DoDashes می نامند تا در واقع کار را انجام دهند. ماکرو تمام سلول های انتخاب شده را بررسی می کند و سپس هر عملیاتی را که باید روی محتویات آن سلول ها انجام شود، انجام می دهد.