ကျွန်ုပ်တို့ထံ 12.26.2016 သို့မဟုတ် 26/12/2016 (UK ဖော်မတ်) အဖြစ် ကျွန်ုပ်တို့ထံ ပေးပို့ထားသော စာရင်းဇယားများတွင် ရက်စွဲများကို မည်မျှကြာကြာရရှိရသနည်း၊ ရက်စွဲသည် အကျုံးမဝင်ပါ သို့မဟုတ် လ 26 မရှိကြောင်းကို ပြောပြရန်သာ ဖြစ်ပါသည်။ ဤဆောင်းပါးသည် TRIM၊ LEFT၊ ညာဘက်နှင့် MID လုပ်ဆောင်ချက်များကို အသုံးပြု၍ VBA ဖြင့် ရက်စွဲများကို ပြင်ဆင်ခြင်းအကြောင်း စူးစမ်းသည်။
ဆောင်းပါးသည် စာဖတ်သူတွင် Developer ribbon ကိုပြသထားပြီး VBA Editor နှင့် ရင်းနှီးသည်ဟု ယူဆသည်။ မဟုတ်ပါက၊ Google "Excel Developer Tab" သို့မဟုတ် "Excel Code Window" ကို ကျေးဇူးပြု၍
ဤလေ့ကျင့်ခန်းတွင် xlsm ကိုဒေါင်းလုဒ်လုပ်နိုင်သည်။ ဒီမှာ.
ငါတို့ပြဿနာမဟုတ်ဘူး!
ပြဿနာတစ်ခုကို ဖြေရှင်းရန် အကောင်းဆုံးနေရာသည် အရင်းအမြစ်ဖြစ်သည်။ သို့ရာတွင်၊ ဤကိစ္စတွင် 12.26.1994 သည် တရားဝင်သောရက်စွဲမဟုတ်ပါ (အရှေ့ဥရောပနိုင်ငံအချို့အတွက် ကွန်ပျူတာ၏ Control Panel တွင် ပြင်ဆင်သတ်မှတ်ထားခြင်းမရှိပါက) မည်မျှဆွဲဆောင်မှုပမာဏမျှ မရရှိနိုင်ပါ။
တကယ်တော့ စက်နဲ့ဖတ်လို့ မရဘူးဆိုတာ သက်သေပြနိုင်ပါတယ်။ ဥပမာအားဖြင့်၊ ရက်စွဲတစ်ခုသို့ 7 ရက်ပေါင်းထည့်သည်-
"=01.01.2017 + 7" = #VALUE. "=2017.01.01 + 7" = #VALUE.
နေစဉ်…
"=2017-01-01 + 7" = 2017/01/08.
အဲဒါက သူတို့ရဲ့ ပြဿနာမဟုတ်ဘူးလို့ သူတို့ အကြံပြုပါရစေ။
ရက်စွဲပုံစံများ
ပထမအချက်က ရက်စွဲက USA ဒါမှမဟုတ် International format လားဆိုတာ သေချာအောင်ပါ။
ကျွန်ုပ်တို့၏ဥပမာသည် နိုင်ငံတကာဖော်မတ် DMY ထက် MDY သည် USA အသုံးပြုမှုကို ကြည့်နေကြောင်း ရှင်းရှင်းလင်းလင်းဖော်ပြသည်။
ကျွန်ုပ်တို့သည် အရင်းအမြစ်ကို တည်ထောင်ပြီးသည်နှင့်၊ နိုင်ငံတကာတွင်ဖြစ်စေ USA တွင်ဖြစ်စေ Excel သည် ၎င်းတို့ကို နားလည်သဘောပေါက်နိုင်စေရန် ဒေတာဖော်မတ်များကို ပြောင်းလဲရန် လိုအပ်ပါသည်။
၎င်းကိုလုပ်ဆောင်ရန် အကောင်းဆုံးနည်းလမ်းမှာ အရည်အချင်းမလိုအပ်သော ဖော်မတ်ဖြစ်သည့် ရက်စွဲကို yyyymmdd သို့ ပြောင်းရန်ဖြစ်သည်။
အဆိုပါလုပ်ငန်းစဉ်
ကျွန်ုပ်တို့သည် စာရွက်စာတမ်းရှိ အတန်းတစ်ခုစီကို လည်ပတ်ပြီး အရင်းအမြစ်နိုင်ငံအလိုက် ရက်စွဲကို “မှန်ကန်” စေရန် လုပ်ဆောင်ချက်တစ်ခုကို တောင်းဆိုပါမည်။ ရက်စွဲကို ပြင်ဆင်ပြီးသည်နှင့် ကျွန်ုပ်တို့သည် ဝန်ထမ်း၏ အသက်ကို တွက်ချက်ပါမည်။
အဆိုပါ Code ကို
အောက်ပါကုဒ်ကို module အသစ်တစ်ခုသို့ ကူးယူပါ-
Option Explicit
Sub Main()
Dim strNewFormat As String
Dim strDate As String
Sheets("Main").Range("B4").Select
'Cycle through the sheet rows, using IDNumber as an anchor
'to prevent a premature halt caused by a blank date of birth
Do While ActiveCell > ""
If ActiveCell.Offset(0, 2) > "" Then
strDate = ActiveCell.Offset(0, 2)
'Remove leading or trailing spaces
strDate = Trim(strDate)
'Call the function
strNewFormat = ReformatDate(strDate, "USA")
'Write the result from the function ReformatDate to a new column
ActiveCell.Offset(0, 3) = strNewFormat
'Determine age by subtracting the previous column from today's date
ActiveCell.Offset(0, 4) = "=(NOW()-RC[-1])/365.25"
'Convert to intger, thus lopping off decimal places
ActiveCell.Offset(0, 4) = Int(ActiveCell.Offset(0, 4))
End If
Range("B" & ActiveCell.Row + 1).Select
Loop
End Sub
Function ReformatDate(sDate As String, sSource As String)
Dim yyyy, mm, dd As String
yyyy = Right(sDate, 4)
If sSource = "USA" Then
mm = Left(sDate, 2)
dd = Mid(sDate, 4, 2)
Else
mm = Mid(sDate, 4, 2)
dd = Left(sDate, 2)
End If
ReformatDate = yyyy & "-" & mm & "-" & dd
End Function
သင့်ဖောင်တွင် ခလုတ်တစ်ခုထည့်ကာ ၎င်းကို Sub Main သို့ သတ်မှတ်ပေးပါ။
မလုပ်မီမဆုံးဖြတ်မီအချို့အချက်များကိုစဥ်းစားရန်သတိပေးခြင်း
သင့် module တွင် ရှုပ်ထွေးလွန်းသောကုဒ်ကို မထည့်မီ၊ Excel သည် အဓိက အပလီကေးရှင်း ဖွံ့ဖြိုးတိုးတက်မှုတွင် အမြဲတမ်း မတည်ငြိမ်ကြောင်း၊ ပျက်စီးသွားသော ကုဒ်ကို မကြာခဏ ပြန်လည်ရယူ၍ မရနိုင်ကြောင်း အကြံပြုအပ်ပါသည်။ "Save" တွင် အကျင့်ပျက်ခြစားမှုများ ပေါ်ပေါက်လာသောကြောင့် ရလဒ်မှာ သင်၏တစ်ခုတည်းသောမိတ္တူ၏ အကျင့်ပျက်ခြစားမှုဖြစ်နိုင်သည်။
မကြာခဏ မိတ္တူကူးပြီး ပြုပြင်ရန် ကိရိယာတစ်ခု အသုံးပြုပါ။ Excel ဖိုင် ဖောက်ပြန်ခြင်း.
စာရေးသူနိဒါန်း:
Felix Hooker သည် ဒေတာပြန်လည်ရယူရေးဆိုင်ရာ ကျွမ်းကျင်သူဖြစ်သည်။ DataNumen, Inc. အပါအဝင် ဒေတာပြန်လည်ရယူရေးနည်းပညာများတွင် ကမ္ဘာ့ခေါင်းဆောင်ဖြစ်သည်။ ပြုပြင် rar အကျင့်ပျက်ခြစားမှုကို file နှင့် sql recovery software ထုတ်ကုန်များ။ ပိုမိုသိရှိလိုပါကသွားရောက်ကြည့်ရှု www ။datanumen.com
