用VBA打开电子表格时的当前日期填充单元格

用VBA打开电子表格时的当前日期填充单元格,vba,excel,Vba,Excel,当电子表格打开时,我如何在单元格中插入今天的日期,这样,如果有人想更改它,他们就可以在单元格中更改它 我试过以下方法,但运气不好 Private Sub Worksheet_Change(ByVal Target As Range) Dim temp As String If Home.Range("_invoiceDate").Value = "" Then Home.Range("_invoiceDate").Value = Date End If

当电子表格打开时,我如何在单元格中插入今天的日期,这样,如果有人想更改它,他们就可以在单元格中更改它

我试过以下方法,但运气不好

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim temp As String

    If Home.Range("_invoiceDate").Value = "" Then
        Home.Range("_invoiceDate").Value = Date
    End If
End Sub  
单元格是一个命名范围“\u invoiceDate”,工作表是“Home”


提前感谢您的帮助

对于打开工作簿时要运行的代码,您需要像这样将代码放置在工作簿工作表中

Private Sub Workbook_Open()
    dim Home as Worksheet
    set Home = Worksheets("Home")
    Home.Range("_invoiceDate").Value = Format(Now(),"mm/dd/yyyy")  
End Sub
我相信这就是你要找的

我测试了在工作表之间切换,效果很好

Private Sub Worksheet_Activate()

Dim Home As Worksheet
Set Home = Worksheets("Home")
Home.Range("_invoiceDate").Value = Format(Now(), "mm/dd/yyyy")

End Sub

祝你好运和快乐

你能不能把你的问题重新表述一下,因为我真的不明白你需要什么……你是说“工作簿打开时”?对不起,基本上我需要的是在我打开电子表格时,在单元格范围“\u invoiceDate”中有一个当前日期。也许你需要使用
私有子工作表\u Activate()
当我在工作簿之间切换时,改为事件
工作表\u更改
-实际上是在工作表之间切换。据我所知,您需要使用@Mike的答案谢谢Mike,当您在工作表之间切换时,第二个版本可以工作,但是当我使用第一个版本的代码时,什么都没有发生,有什么想法吗?第一个版本只有在您第一次打开工作簿时才起作用。我将使用此区域初始化值,为用户提供获取userform的机会,等等。首次打开vba编辑器时,它是列表中的最后一个工作表,称为ThisWorkbook。很高兴代码为您工作!我必须承认,这是我的错误,因为我没有正确地放置您的代码,我发现了我的错误,现在一切正常。谢谢