我正在尝试设置一个macro
,为了论证起作用,这样做:
监测特定鸟类的每日目击。 Column 'A'
代表column 'B'
的日期,代表不同的鸟类
每列都有一个按钮,每个按钮都有一个键盘快捷键
我想要的是单击按钮时将按钮添加到当天相应行中的单元格
因此,在1月20日,按钮将添加到一个单元格,并在21日,下面的单元格...
我在这方面寻找线索,但我正在画一个空白。有什么想法吗?
答案 0 :(得分:0)
我写了一些代码,这段代码假设A列的格式为“m / d / yyyy”,第1行是您通过工作表追踪的不同鸟类的列表,并且您在同一张工作表上有表单按钮,其中包含与第1行完全相匹配的鸟的名称。 (例如,C1你有“Brown Wren”,然后你有一个表格按钮,上面有“Brown Wren”)
Option Explicit
Public ws As Worksheet
Private Sub AddBirdSighting(ByVal rng As Range)
If rng Is Nothing Then
Debug.Print "Invalid range"
Exit Sub
End If
rng.Value = rng.Value + 1
End Sub
Private Function GetRange(ByVal Bird As String, ByVal Today As Date) As Range
Dim c As Integer
Dim r As Integer
c = ws.Range("1:1").Find(Bird, LookIn:=xlValues).Column
r = ws.Range("A:A").Find(Today, LookIn:=xlValues).Row
Set GetRange = ws.Cells(r, c)
End Function
Public Sub CommandButtonClick()
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ctl As String
Dim btn As String
ctl = Application.Caller
btn = ws.Buttons(ctl).Text
AddBirdSighting GetRange(btn, Format(DateTime.Now, "m/d/yyyy"))
End Sub
将此代码复制/粘贴到VBA中的模块中,并将CommandButtonClick过程分配给所有按钮。如果您需要任何解释,请告诉我,我会详细介绍。