2016-07-08 7 views
1

Ich habe einen Code im Internet gefunden und es ausprobiert. Der Code funktioniert. aber meine Sorge ist, dass ich das Blatt als Date umbenennen möchte. oder erlauben Sie dem Code, das Format mm/dd/yyyy von der Zelle zu lesen.Dynamischer Tabellenname in Excel als DATUM

hier ist die Probe des Codes:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Set Target = Range("A1") 
    If Target = "" Then Exit Sub 
    Application.ActiveSheet.Name = VBA.Left(Target, 31) 
End Sub 

, wenn der Wert von A1 2016.06.01 ist, ich mag meine Blattnamen als Jun01,2016 oder zumindest die Namen haben, wie Datum.

Hinweis .. Ich habe auch versucht, anderen Vorschlag (n) von anderen Seiten, aber immer noch nicht funktioniert

Antwort

1

Ich bin mir nicht sicher, warum dies ein Worksheet_SelectionChange Ereignis Makro sein muss oder warum Sie die Zielparameter neu schreiben aber vielleicht wird funktionieren.

Private Sub Worksheet_SelectionChange(ByVal Target as Range) 
    If Target.Address <> "$A$1" or Not IsDate(Range("A1")) Then Exit Sub 
    Me.Name = Format(Target.Value2, "mmmdd,yyyy") 
End Sub 

Select A1 (und nur A1) mit einem Datum (möglicherweise =today()) in A1 und den Namen des Arbeitsblatt angepasst werden (z Jul07,2016).

+0

Hallo @Jeeped .. danke für die Antwort .. leider, als ich Ihren Code verwendet wird, hat der Blattname nicht seinen Namen überhaupt ändern. (Den Wert von A1 verwendet) – noob

+0

Haben Sie es in einem setzen Modul-Codeblatt oder haben Sie mit der rechten Maustaste auf das Namensregister des Arbeitsblatts geklickt und Code anzeigen gewählt, um zum Codelexikon des Arbeitsblatts zu gelangen? Ist das Datum in A1 rechtsbündig oder linksbündig? Ist es ein echtes Datum oder nur ein Text, der wie ein Datum aussieht? – Jeeped

+0

Code anzeigen, nicht wissen, ob rechts oder links ausgerichtet. wahres Datum – noob

2

Möglicherweise müssen wir dies optimieren, wenn das Datum als Text gespeichert wird. Gib mir Bescheid.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If IsDate(Range("A1")) Then 

     ActiveSheet.Name = Format(Range("A1"), "MM-DD-YYYY hh-mm-ss") 

    End If 
End Sub 
+0

Danke @Thomas Inzina .. Dies ist die Antwort, die ich suche. – noob