با سلام خدمت کاربران عزیز آی تی سواد
احتمالاً می دانید که برای تغییر نام شیت باید بر روی تب آن دابل کلیک کنید.
اگر می خواهید این کار را به صورت پویا انجام دهید ، چه می کنید؟
اگر می خواهید مقدار در سلول A1 به طور خودکار به عنوان نام برگه ظاهر شود ، چه می کنید؟
متأسفانه ، اکسل برای انجام این نوع کارها روشی تعریف شده را ارائه نمی دهد. تنها می تونانید با استفاده از یک ماکرو این کار را انجام دهید.
تغییر نام شیت بصورت خودکار
۱. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .
۲. در پنجره Microsoft Visual Basic for Applications از قسمت Project بر روی شیت موردنظرتان دابل کلیک کنید
۳. سپس مانند تصویر زیر رویداد Worksheet_SelectionChange را انتخاب کنید.
۴. سپس کد زیر را وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Set Target = Range("A1") If Target = "" Then Exit Sub On Error GoTo Badname ActiveSheet.Name = Left(Target, 31) Exit Sub Badname: MsgBox "Please revise the entry in A1." & Chr(13) _ & "It appears to contain one or more " & Chr(13) _ & "illegal characters." & Chr(13) Range("A1").Activate End Sub |
از این به بعد با تغییر متن سلول A1 نام تب بصورت خودکار تغییر می کند.
تغییر نام شیت بصورت خودکار بر اساس تاریخ میلادی موجود در سلول
درصورتی که بخواهید نام شیت بر اساس تاریخ میلادی سلول خاص تغییر کند کد زیر را وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Set Target = Range("A1") If Target = "" Then Exit Sub On Error GoTo Badname ActiveSheet.Name = Format(Target, "mmm-dd-yy") Exit Sub Badname: MsgBox "Please revise the entry in A1." & Chr(13) _ & "It appears to contain one or more " & Chr(13) _ & "illegal characters." & Chr(13) Range("A1").Activate End Sub |
تغییر نام شیت بصورت خودکار بر اساس تاریخ شمسی موجود در سلول
درصورتی که بخواهید نام تب بر اساس تاریخ شمسی سلول خاص تغییر کند کد زیر را وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set Target = Range("A1") If Target = "" Then Exit Sub On Error GoTo Badname d = Replace(Target, "/", "_") ActiveSheet.Name = d Exit Sub Badname: MsgBox "Please revise the entry in A1." & Chr(13) _ & "It appears to contain one or more " & Chr(13) _ & "illegal characters." & Chr(13) Range("A1").Activate End Sub |
برای مشاهده سایت انگلیسی این آموزش اینجا کلیک کنید.