[英]Excel macro with variable row input based on date
我正在嘗試建立一個macro
,為了進行辯論,它的工作方式如下:
監視特定鳥類的日常目擊情況。 Column 'A'
代表日期, column 'B'
代表向上,而代表不同的鳥類。
我在每一欄中都有一個按鈕,每個按鈕都有鍵盤快捷鍵。
我想要的是按鈕,當單擊以將1添加到當天相應行中的單元格時。
因此,在1月20日,該按鈕將添加到一個單元格中,而在21日,該按鈕將添加到下面的單元格中...
我正在尋找有關此方面的線索,但正在空白。 有任何想法嗎?
我已經編寫了一些代碼,該代碼假定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過程分配給所有按鈕。 如果您需要任何解釋,請告訴我,我將進一步詳細介紹。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.