【发布时间】: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),数据表就会相应地填充。但是,该公式中的循环引用弄乱了我的热图。
我希望这足够详细,我提前感谢您提供的任何帮助! :)
【问题讨论】: