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

رابرت دوست دارد روی تبارشناسی کار کند. گاهی وقتی گورستان قدیمی تری پیدا می کند، به جای اینکه تاریخ تولد و وفات روی سنگ قبر دیده شود، فقط یک تاریخ و یک سن قابل مشاهده است. به عنوان مثال، "متولد: 18 ژانویه 1801، درگذشت 81 سال، 11 ماه، 17 روز" یا "سن: 93 سال، 8 ماه، 22 روز، درگذشته 18 مارس 1901." رابرت به این فکر می کند که آیا راهی برای محاسبه تاریخ گمشده تا روز وجود دارد؟

راهی برای انجام این کار وجود دارد، اما شامل استفاده از توابع معمولی کاربرگ نیست. در حالی که اکسل شامل مجموعه ای غنی از توابع کاربرگ است که به شما امکان می دهد تاریخ ها را دستکاری کنید، "تاریخ پایه" برای اکسل 1 ژانویه 1900 است. این تاریخی است که تمام تاریخ ها از آن محاسبه می شود. (شما می توانید تاریخ پایه را تغییر دهید، اما تنها چهار سال، به 1904. این قابلیت برای سازگاری با اکسل در مک ارائه شده است.) این به این معنی است که تاریخ های قدیمی - مانند تاریخ هایی که در گورستان برای اهداف شجره نامه پیدا می کنید - نمی توانند مستقیماً در اکسل محاسبه شود.

خوشبختانه VBA این محدودیت را ندارد. این بدان معنی است که شما به راحتی می توانید یک تابع تعریف شده توسط کاربر (یک ماکرو) ایجاد کنید که محاسبات را برای شما انجام دهد. با قرار دادن تاریخ شروع (تاریخ تولد یا مرگ) در سلول B1 شروع کنید. سپس، در سلول های B2:B4 تعداد سال ها، ماه ها و روزهایی را که می خواهید تاریخ شروع را تنظیم کنید، وارد کنید. بنابراین، اگر B1 حاوی تاریخ تولد باشد، سلول های B2:B4 باید مثبت باشند (شما می خواهید آنها را به تاریخ شروع اضافه کنید). اگر B1 حاوی تاریخ مرگ باشد، B2:B4 باید منفی باشد (شما می خواهید آنها را از تاریخ شروع کم کنید).

سپس، این ماکرو را ایجاد کنید:

Function FindDate(Start As Date, iYrs As Integer, _
  iMths As Integer, iDays As Integer)

    Application.Volatile
    Dim D As Date

    D = DateAdd("yyyy", iYrs, Start)
    D = DateAdd("m", iMths, D)
    D = DateAdd("d", iDays, D)

    FindDate = Format(D, "m/d/yyyy")
End Function

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

=FindDate(B1,B2,B3,B4)

نتیجه تابع یک تاریخ قالب بندی شده است که تاریخ شروع را نشان می دهد که با سال ها، ماه ها و روزهایی که مشخص می کنید تنظیم شده است. بنابراین اگر سلول B1 شامل 1/18/1801، سلول B2 حاوی 81، سلول B3 حاوی 11، و سلول B4 حاوی 17 باشد، تابع 1/4/1883 برمی گردد. به همین ترتیب، اگر سلول B1 شامل 1901/3/18، سلول B2 حاوی -93، سلول B3 حاوی -8، و سلول B4 حاوی -22 باشد، نتیجه بازگشتی 1807/6/26 خواهد بود.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

94 نفر آنلاین
0 عضو و 94 مهمان در سایت حاضرند
بازدید امروز: 8664
بازدید دیروز: 23827
بازدید کل: 15443180
...