মাস এবং তারিখ VBA চলমান যখন প্রায় সুইচ রাখা রাখা


0

আমি আমার শীট একটি কলাম আছে, কলাম F তারিখগুলি পূর্ণ। এখন আমি এই তারিখগুলি "dd, mm, yyyy" এই ফর্ম্যাটে থাকা প্রয়োজন তবে কখনও কখনও তারা পাঠ্য ফর্মের মধ্যে থাকে, আমাদের মূল ডেনে / আর্মেনিয়ান বিন্যাস। কেন আমি সঠিক বিন্যাসে রূপান্তর করার জন্য একটি ম্যাক্রো প্রয়োগ করি, এটি কখনও কখনও তারিখ এবং মাসগুলি প্রায়শই স্যুইচ করে তবে আমি নিজে নিজে এটি করি না তবে এমন কোন ত্রুটি ঘটে না।

আমার ওয়ার্কশীটে তথ্য পেতে পেস্ট মান ব্যবহার করছি এবং এটি আমার কোড। এটা বিন্যাস dd / mmm / yyyy জন্য সঠিক মাস দেখায় কিন্তু মাস এবং তারিখ সুইচ।

Range("F2").Select
    Range(Selection, Selection.End(xlDown)).Select
 Selection.NumberFormat = "dd/mmm/yyyy"
    Selection.TextToColumns Destination:=Range("F2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
 Selection.NumberFormat = "dd/mm/yyyy"

আসুন F2, তারিখ 9 জানুয়ারী ২009 তারিখ 09/২009 এ বিন্যাসে আসি।

যখন আমি কলামে আমার পাঠ্যটি করি, তখন এটি তারিখ 0/২009 হিসাবে ছেড়ে দেয়।

যখন আমি কলামগুলিতে পাঠ্যটি পুনরাবৃত্তি করি (কোনও পরিবর্তন না করে) এটি 1 সেপ্টেম্বর ২009 তারিখের তারিখ (বিন্যাসে নয়) পরিবর্তন করে।

কেউ কি জানো এটা কেন হচ্ছে? যদি আমি কলামগুলিতে পাঠ্য নিজে নিজে করি তবে আমি সারা দিন ধরে এটির মত ফরম্যাটে থাকব।

সমস্যাটি ম্যাক্রো পুনরাবৃত্তি করলেই হয়, আমি কি ভুল করছি তা নিশ্চিত নই। অ্যারে (1,4) অ্যারে field1fo পরিবর্তন করার চেষ্টা করেছেন।

কেউ সাহায্য করতে পারেন আশা করি।


আপনি কি মনে করেন Other:=False, FieldInfo _ :=Array(1, 4), TrailingMinusNumbers:=True করছে?
Dave

একটি সরাইয়া হিসাবে, আমি একটি ম্যাক্রো এই সমস্যা ছিল করেছি। যদি আমি dd-mm-yyyy দিয়ে একটি ম্যাক্রো লিখতে চেষ্টা করি তবে প্রতিটি সময় আমি ম্যাক্রো দৌড়াই, এটি স্যুইচ হবে। এটি dd / মিমি / yyyy এ পরিবর্তন এটি সমাধান ( কোড দেখাচ্ছে উদাহরণ )
Dave

উত্তর:


0

আপনার FieldInfo যুক্তিতে ডেটাটাইপ সেট করতে হবে

Redim FieldInfoVal(1 To 1) 
FieldInfoVal(1) = xlDMYFormat

4 কলাম নেই তাই আমি 1 এর অ্যারে ব্যবহার করছি

তারপর ফিল্ডইনফোফের পরে FieldInfoVal এ পাস করুন: =

আপনি ব্যবহার করে পরিবর্তনশীল সঙ্গে বিতরণ করতে সক্ষম হতে পারে

FieldInfo:=Array(0, xlDMYFormat)

আমি মনে করি অ্যারে 1 ভিত্তিক তাই এটি 0 ম সদস্যকে উপেক্ষা করবে, আমি শুধু একটি শূন্যে রেখেছি।

উভয় পদ্ধতির আমি মনে করি কাজ করা উচিত।


0

আমি এই টুকরা কোড কম্পাইল এবং এটা আমার জন্য একটি কাজ করেছে।

Sub FormatDate()

Application.ScreenUpdating = False
With Range("A2", Range("A" & Rows.Count).End(xlUp))
.EntireColumn.Insert
.NumberFormat = "@"
With .Offset(, -1)
.FormulaR1C1 = "=Text(RC[1],""dd/mm/yy"")"
.Offset(, 1).Value = .Value
.EntireColumn.Delete
End With
End With
Application.ScreenUpdating = True

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 4)

End Sub  
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.