ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
15 visibility
موضوع: آفیس توسط:

Vinay از یک کاربرگ اکسل برای ورود داده ها استفاده می کند. اطلاعات در ستون A وارد می شود و Vinay می خواهد راهی برای اضافه کردن خودکار زمانی به ستون B، مجاور مقدار وارد شده در ستون A، داشته باشد که نشان می دهد چه زمانی مقدار وارد شده است.

چندین راه مختلف برای انجام این کار وجود دارد. اولین مورد این است که با انتخاب سلول مجاور در ستون B و فشار دادن Ctrl+Shift+ زمان را به صورت دستی وارد کنید. (این نقطه ویرگول است). این میانبر زمان فعلی را در سلول وارد می کند. البته مشکل این روش این است که خودکار نیست و برای پیاده سازی آن نیاز به حرکت و فشار کلید اضافی است.

یک رویکرد بهتر استفاده از یک فرمول برای وارد کردن زمان است. تابع NOW تاریخ و زمان فعلی را برمی گرداند و می توانید از آن در یک سلول به این شکل استفاده کنید:

=NOW()

البته این فرمول ساده با هر بار محاسبه مجدد کاربرگ به روز می شود. این بدان معناست که هر بار که مقداری را در ستون A وارد می کنید، تابع زمان جاری را برمی گرداند. این نامطلوب است زیرا نمی خواهید زمان های قبلی به روزرسانی شوند. می توانید سعی کنید از یک فرمول برای بررسی اینکه آیا چیزی در ستون A وجود دارد یا خیر استفاده کنید، مانند این روش:

=IF(A3="","",IF(B3="",NOW(),B3))

مشکل این است که فرمولی مانند این یک مرجع دایره ای را به کاربرگ معرفی می کند که چالش های زیادی را برای کار با آن ارائه می کند. یک رویکرد بهتر، ایجاد یک ماکرو است که هر بار که چیزی در ستون A وارد می شود، به طور خودکار اجرا می شود. روی برگه کاربرگ مورد استفاده برای ورود داده ها کلیک راست کرده و View Code را از منوی زمینه انتخاب کنید. پنجره کد مربوط به کاربرگ را در ویرایشگر ویژوال بیسیک خواهید دید و سپس این را در پنجره وارد کنید:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim rCell As Range
    Dim rChange As Range
    
    On Error GoTo ErrHandler
    Set rChange = Intersect(Target, Range("A:A"))
    If Not rChange Is Nothing Then
        Application.EnableEvents = False
        For Each rCell In rChange
            If rCell > "" Then
                With rCell.Offset(0, 1)
                    .Value = Now
                    .NumberFormat = "hh:mm:ss"
                End With
            Else
                rCell.Offset(0, 1).Clear
            End If
        Next
    End If

ExitHandler:
    Set rCell = Nothing
    Set rChange = Nothing
    Application.EnableEvents = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

با وجود ماکرو، هر زمان که چیزی را در سلولی در ستون A وارد می کنید، سلول مجاور در ستون B حاوی تاریخ و زمان خواهد بود (فرمت شده برای نشان دادن فقط زمان). اگر چیزی را در ستون A حذف کنید، سلول مجاور در ستون B نیز پاک می شود.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

77 نفر آنلاین
0 عضو و 77 مهمان در سایت حاضرند
بازدید امروز: 15570
بازدید دیروز: 23384
بازدید کل: 15266468
...