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

دونا باید گزارشی از فعالیت هایی که در طول روز رخ داده است را در مرکز اعزام خود نگه دارد. وقتی تماسی از طریق رادیو وارد می شود، او باید مستند کند که چه کسی، چه چیزی، چرا، و غیره. او همچنین باید زمان (در قالب 24 ساعته) تماس را مستند کند. دونا در حال حاضر همه این کارها را روی کاغذ انجام می دهد. او می خواهد یک کاربرگ ایجاد کند که بتواند در آن تایپ کند و به محض اینکه متن را در سلول کنار آن ردیف وارد می کند، مهر زمان به طور خودکار پر شود. وقتی سلول کنار آن خالی است، او می خواهد سلول مهر زمانش خالی باشد. به این ترتیب او می تواند در زمان چک کردن ساعت برای نوشتن زمان صرفه جویی کند.

برای حل این مشکل، فرض کنید که می خواهید مهر زمانی به ستون A وارد شود و «چه کسی، چه، چرا» و سایر اطلاعات خود را که از ستون B شروع می شوند وارد کنید. ساده ترین راه برای انجام این کار استفاده از Excel است. میانبر داخلی برای وارد کردن زمان فعلی: Shift+Ctrl+ را فشار دهید. (این نقطه ویرگول است). به شرطی که سلول طوری قالب بندی شده باشد که زمان ها را در قالب 24 ساعته نشان دهد، زمان فعلی را همانطور که می خواهید می بینید.

اگر می خواهید رویکرد خودکارتری داشته باشید، ممکن است فکر کنید که می توانید از یک فرمول ساده در ستون A استفاده کنید، مانند این:

=IF(B2<>"", NOW(), "")

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

با این حال، می توانید فرمول ستون A را کمی پیچیده تر کنید، به این ترتیب:

=IF(B2<>"", IF(A2="",NOW(),A2), "")

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

image

شکل 1. ناحیه Formulas در کادر محاوره ای Excel Options.

  1. کادر محاوره ای Excel Options را نمایش دهید. (در اکسل 2007 روی دکمه Office کلیک کنید و سپس روی Excel Options کلیک کنید. در اکسل 2010 یا نسخه های جدیدتر، تب File را در نوار نمایش داده و سپس روی گزینه ها کلیک کنید.)
  2. روی Formulas در سمت چپ صفحه کلیک کنید. (شکل 1 را ببینید.)
  1. مطمئن شوید که کادر بررسی Enable Iterative Calculation انتخاب شده است.
  2. روی OK کلیک کنید.

اکنون، هر زمان که چیزی را در سلول B2 قرار دهید، زمان به طور خودکار در سلول A2 وارد می شود. با این حال، زمان تنها در صورتی قرار می گیرد که سلول A2 قبلاً خالی بوده باشد. اگر نبود (یعنی قبلاً حاوی یک زمان بود)، محتوای فعلی سلول A2 در جای خود باقی می ماند.

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rInt As Range
    Dim rCell As Range
    Dim tCell As Range

    Set rInt = Intersect(Target, Range("B:B"))
    If Not rInt Is Nothing Then
        For Each rCell In rInt
            Set tCell = rCell.Offset(0, -1)
            If IsEmpty(tCell) Then
                tCell = Now
                tCell.NumberFormat = "mmm d, yyyy hh:mm"
            End If
        Next
    End If
End Sub

برای تنظیم ماکرو، روی برگه کاربرگ راست کلیک کرده و View Code را انتخاب کنید. سپس می توانید ماکرو را در پنجره کدی که نمایش داده می شود قرار دهید. (این ماکرو را در ماژول ThisWorksheet قرار می دهد، که لازم است زیرا یک کنترل کننده رویداد است که هر زمان که چیزی در کاربرگ تغییر کند اجرا می شود.)

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

                tCell = Time
                tCell.NumberFormat = "hh:mm"
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

142 نفر آنلاین
0 عضو و 142 مهمان در سایت حاضرند
بازدید امروز: 13424
بازدید دیروز: 21973
بازدید کل: 15286288
...