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

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

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

=A1-DAY(A1)
=EOMONTH(A1,-1)

اولین مورد کار می کند زیرا "روز 0" ماه جاری همیشه آخرین روز ماه قبل در نظر گرفته می شود. بنابراین، اگر تاریخ در سلول A1 25/9/21 باشد، در نهایت عدد 25 (مقدار DAY) را از آن روز کم می کنید و تاریخ 9/0/21 یا 8/31/21 را می دهید.

فرمول دوم به دلیل گنجاندن پارامتر دوم برای تابع EOMONTH کار می کند. این پارامتر برای نشان دادن چند ماه در گذشته (منفی) یا آینده (مثبت) پایان ماه استفاده می شود.

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

اگر ماکرویی می خواهید که در واقع تاریخ های یک محدوده انتخاب شده را به آخرین روز ماه قبل تبدیل کند، موارد زیر این کار را انجام می دهند.

Sub LastDayPreviousMonth()
    Dim rCell As Range

    For Each rCell In Selection
        If IsDate(rCell) And Not rCell.HasFormula Then
            rCell.Value = WorksheetFunction.EoMonth(rCell.Value, -1)
        End If
    Next rCell
End Sub

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

لازم به ذکر است که رویکرد کلان تاریخ های متنی را نیز تبدیل می کند. به عنوان مثال، اگر سلولی به عنوان متن دارای تاریخ "6/15/21" باشد، ماکرو آن را به 5/30/21 تغییر می دهد. هنگامی که تاریخ تنظیم شده دوباره در سلول قرار می گیرد، به عنوان شماره سریال تاریخ/زمان نشان داده می شود، نه به عنوان متن.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

112 نفر آنلاین
0 عضو و 112 مهمان در سایت حاضرند
بازدید امروز: 9549
بازدید دیروز: 14599
بازدید کل: 15091178
...