【问题标题】:How to lookup today's date and edit the cell next to itVBA 按钮查找今天的日期并编辑它旁边的单元格
【发布时间】:2022-11-30 04:31:34
【问题描述】:

我需要帮助创建一个 VBA 按钮,当按下该按钮时,它将在另一个工作表中查找以今天的日期为值的特定单元格,并将其相邻单元格的值编辑 +1。

我正在尝试为我的学习创建一个“积分跟踪器”。每完成一项任务,我都会奖励自己一分。我有一个包含两个工作表(“Sheet1”和“数据”)的工作簿。

在“Sheet1”工作表上,我将通过过去 27 周的动态热图直观地了解我的进度。顶部还有一个按钮,我打算在每次完成一项任务时按下它,以便在我的日常记录中增加一分。

在“数据”工作表上,我有一个包含两列的简单表格(S 列是从 2022 年到 2026 年不等的日期,并列出每一天的点数。

我已经设法将数据表的 B 列中的值链接到 Sheet1 中的动态热图,这意味着,当编辑 B 列中的点时,我将在热图中看到它们。现在,我只需要一种简单的方法来将点加到数据表中的今天日期。有点像 Vlookup 所做的,但我不想返回范围 column2 中的值,而是想按 1 对其进行编辑。

在寻找解决方案时,This question 看起来和我想做的很相似,但它偏离了我的意图。我仍然尝试了以下,这会导致错误:

Private Sub Worksheet_Change()
    Dim temp As Range
    If Not Intersect(Target, Range("E3")) Is Nothing Then
        Set temp = Range("data!A:A").Find(Trim(Range("E3")), LookIn:=xlValues, lookat:=xlWhole)
        If Not temp Is Nothing Then
            Range("K3") = temp.Offset(0, 1)
            temp.Offset(0, 2) = Range("Q3")
        End If
    End If
End Sub

我尝试的另一件事是在 Sheet1 中为今天的点 (Sheet1!$A$1) 分配一个特定的单元格,然后将以下公式添加到数据表的 columnB 中的单元格:=If(A1=TODAY(),Sheet1!$A$1,B1) 这样,如果我向其中添加一个简单的 +1 按钮 (Sheet1!$A$1),数据表就会相应地填充。但是,该公式中的循环引用弄乱了我的热图。

我希望这足够详细,我提前感谢您提供的任何帮助! :)

【问题讨论】:

    标签: excel vba button


    【解决方案1】:
    Sub Button1_Click()
        Dim temp As Range
        Set temp = Range("data!A:A").Find(What:=Format(Date, "m/d/yyyy"), LookIn:=xlValues, LookAt:=xlPart)
        
        If Not temp Is Nothing Then
            temp.Offset(0, 1).Value2 = temp.Offset(0, 1).Value2 + 1
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      相关资源
      最近更新 更多