এই এবং অন্যান্য সাইটগুলিতে পূর্ববর্তী প্রশ্নগুলি থেকে আমাকে একটি ফাংশন দেওয়া হয়েছিল যা পাঠ্য স্ট্রিং বা কোষগুলিতে তারিখগুলি সন্ধান করতে এবং সন্ধান করতে পারে। এখানে ফাংশন:
Function GetDate(strInput As String) As Date
Dim DateFormat() As String
Dim intDateLength As Integer
Dim intMaxFormat As Integer
Dim intFrmtCtr As Integer
Dim intPosition As Integer
intMaxFormat = 6
ReDim DateFormat(1 To intMaxFormat)
DateFormat(1) = "*##[-/]##[/-]####*"
DateFormat(2) = "*#[-/]##[-/]####*"
DateFormat(3) = "*##[-/]#[-/]####*"
DateFormat(4) = "*##[-/]##[-/]##*"
DateFormat(5) = "*#[-/]##[-/]##*"
DateFormat(6) = "*#[-/]#[-/]##*"
GetDate = Now
For intFrmtCtr = 1 To intMaxFormat
If strInput Like DateFormat(intFrmtCtr) Then
intDateLength = Len(DateFormat(intFrmtCtr)) - 8
strInput = Replace(strInput, " ", "")
For intPosition = 1 To Len(strInput)
If Mid(strInput, intPosition, intDateLength) Like DateFormat(intFrmtCtr) Then
GetDate = DateValue(Mid(strInput, intPosition, intDateLength))
Exit Function
End If
Next intPosition
End If
Next intFrmtCtr
End Function
এটি তখন একটি সেল ঠিকানা উল্লেখ করে বলা হয়:
'Gets date from cell A2
Range("A2").Select
dateWork = GetDate(Selection)
আমি তারপর আউটপুট ব্যবহার করে ফরম্যাট করতে পারেন Format(dateWork, "mmddyy")
অথবা সাদৃশ্যপূর্ণ.
উপরের ক্ষেত্রে, একটি ঘর বিষয়বস্তু দেওয়া 8/31/2011
স্ট্রিং 08312011
ফিরে এসেছে।
কোষ সামগ্রীর সাথে শুরু হওয়া একটি একক সংখ্যার দিন (অর্থাৎ, মাসের প্রথম দিকে), যদিও, ফাংশনটি দ্বিতীয় দুই সংখ্যার পরিবর্তে বছরের প্রথম দুইটি সংখ্যা ফেরত পাঠাতে শুরু করে। হঠাৎ করেই, ২0২0 সালে তারা যেমন দেখছিল, তেমনি তারিখগুলিও শুরু হল 2011।
আমি অন্যথায় অভিন্ন ইনপুট তথ্য শীট ব্যবহার করে এই পরীক্ষা করতে সক্ষম হয়েছে তারিখ পর্যন্ত এবং সহ 8/31/2011
সঠিকভাবে এবং তারিখ শুরু সঙ্গে ফিরে আসেন 9/1/2011
এবং বছরের হিসাবে সব রিটার্ন "20" অব্যাহত।
কোথায় এই ফাংশন ভঙ্গ করা হয়?
প্রশ্নের জন্য সাম্প্রতিক ব্যাখ্যা:
আমি একটি রিপোর্ট-জেনারেটিং টুল (ব্যবসায় অবজেক্টস) থেকে রপ্তানি করা ডেটাতে অভিনয় করার জন্য বিভিন্ন ম্যাক্রোগুলিতে এই ফাংশনটি ব্যবহার করি। ইনপুট ফাইলগুলিতে ম্যানুয়ালি ম্যানুয়ালি সম্পাদনা করা সম্ভব, তবে এর পরিবর্তে ম্যাক্রোগুলির উদ্দেশ্য হারাতে পারে এবং তাই বিকল্প হিসাবে বিবেচনা করা উচিত নয়।
GetDate () ফাংশনটি কোন স্ট্রিংয়ের তারিখগুলি সন্ধান করতে বলা যেতে পারে। স্ট্রিংগুলি বিভিন্ন ফরম্যাটগুলির মধ্যে কেবল তারিখ হতে পারে, অথবা তারা পাঠ্য এবং তারিখের সমন্বয় হতে পারে যেমন "টোটালস 9/13/1977"।
যতক্ষণ পর্যন্ত এটি উপরে পেশ করা ক্ষমতাগুলি ধরে রাখে ততক্ষণ আমি আপনার সরলকরণ বা সম্পাদনার ফাংশনে কৃতজ্ঞতা প্রকাশ করব।