VBA de tarih formatı nasıl?

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,229
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tebrikler...

İler ki aşamalarda kod içindeki gereksiz satırları silerek profesyonel olma yönünde adım atabilisiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,229
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Mesela aynı sorunu ben farklı bir yöntem olan METNİ SÜTUNLARA DÖNÜŞTÜR ile çözmeye çalıştım. Aşağıdaki kod oluştu.

Sütunu seçip kodu çalıştırınız.

C++:
Option Explicit

Sub Fix_Dates_Text_to_Columns()
    Selection.TextToColumns Destination:=Selection.Cells(1, 1), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
    Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 4), TrailingMinusNumbers:=True
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,229
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu da döngü ile alternatif olsun.

C++:
Sub Fix_Dates_Loop()
    Dim Rng As Range

    With VBA.CreateObject("VBScript.Regexp")
        .Pattern = "(\d{4})[.\-\/](\d{1,2})[.\-\/](\d{1,2})"
        .Global = True
        For Each Rng In Selection.SpecialCells(xlCellTypeConstants, 23)
            If Not IsEmpty(Rng.Value) Then
                If .Test(Rng.Value) Then
                    Rng.Value = DateValue(Rng)
                    Rng.NumberFormat = "dd.mm.yyyy"
                    Rng.Value = Rng.Value
                End If
            End If
        Next
    End With
End Sub
 
Üst