2016-07-08 33 views
1

我在互联网上找到了一个代码并试用了它。代码起作用。但我担心的是我希望将表格重命名为日期。或者至少允许代码从单元格中读取格式mm/dd/yyyy。Excel中的动态表名称为DATE

这里是代码的示例:

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 

如果A1的值是2016年6月1日,我想有我的表名称为Jun01,2016或至少具有名称作为日期。

注意..我也试图从其他网站其他建议(或多个),但仍然没有工作

回答

1

我不能确定为什么这必须是一个Worksheet_SelectionChange事件宏或者为什么要重写的目标参数,但或许这将工作。

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 

选择A1(和只是 A1)在A1的日期(可能=today())和工作表的名称将(例如Jul07,2016)进行调整。

+0

嗨@Jeeped ..感谢您的回答..不幸的是,当我用你的代码,表名称根本不更改其名称。(用A1的值) – noob

+0

你把它放在一个模块代码表还是您右键单击工作表的名称选项卡并选择查看代码以转到工作表的代码表? A1中的日期是右对齐还是左对齐?这是一个真正的日期还是只是文本 - 看起来像一个日期? – Jeeped

+0

查看代码,不知道是否正确或左对齐。真正的日期 – noob

2

如果日期存储为文本,我们可能需要对此进行调整。让我知道。

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

谢谢@Thomas Inzina ..这是我寻找的答案。 – noob