Excel – macrosselect当前date的工作簿中的单元格

我正在Excel中创build日历/日程安排工作簿。 它有一个每个月的工作表。

现在我需要创build一个CommandButton ,它将我带到包含当前date的单元格。 只有一个单元格与当前date,但它可以在工作簿的任何工作表上。

我一直在寻找几天,但不能正确的!

我一直在尝试的东西:

 Private Sub CommandButton1_Click() Dim Sh As Worksheet Dim Loc As Range For Each Sh In ThisWorkbook.Worksheets With Sh.UsedRange Set Loc = .Cells.Find(What:=Int(Date), LookIn:=xlValues) If Not Loc Is Nothing Then Do Until Loc Is Nothing Loc.Select Set Loc = .FindNext(Loc) Loop End If End With Set Loc = Nothing Next End Sub 

当有当前date的单元格在同一张纸上时(虽然它一直按住Esc重新select单元格),但在单元格在另一张纸上时失败。

任何帮助,将不胜感激!

我不认为你需要一个Do While循环。 既然你只是寻找一个,这个简单的For / Next应该做的。 一旦发现代码退出循环,并在结束时转到select部分。 如果未finddate,则不会select任何内容:

 Private Sub CommandButton1_Click() Dim Sh As Worksheet Dim Loc As Range For Each Sh In ThisWorkbook.Worksheets With Sh.UsedRange Set Loc = .Cells.Find(What:=Int(Date), LookIn:=xlValues) If Not Loc Is Nothing Then Exit For End If End With Next If Not Loc Is Nothing Then 'need to activate parent sheet before selecting cell Loc.Parent.Activate Loc.Select End If End Sub 

请注意,在您可以select范围之前,您需要激活父表单。