簡體   English   中英

重復使用UserForm VBA代碼在同一工作表中的多個日期選擇器

[英]Reuse UserForm VBA Code for Multiple Date Pickers in Same Worksheet

我想知道如何重用我必須在將輸入到不同單元格的同一工作表上創建多個日歷日期選擇器的VBA代碼。 我嘗試更改.frm文件的名稱並重新導入以僅更改單元格引用輸出,但是Excel每次都拒絕此操作,並說該名稱已被使用。 我正在密切關注這個例子

如果您知道如何隱藏可單擊圖像直到選擇帶有日期的單元格的代碼,則可以加分。

這是到目前為止我在frmCalendar中使用的代碼:

Private Sub cmdClose_Click()
    Unload Me
End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
   On Error Resume Next
   Dim cell As Object
   For Each cell In Range("C18")
      cell.Value = DateClicked
   Next cell
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   If IsDate(ActiveCell.Value) Then
      Me.MonthView1.Value = Range("C18")
   End If
End Sub

...以及我對Module1的代碼:

Sub Sample()
    frmCalendar.Show
End Sub

所以基本上,我有一個日歷可以加載到C18中。 但是,我希望工作表中最多有10個日歷按鈕,它們具有不同的輸出單元格,因此它們都可以具有不同的日期。

這是一個日歷按鈕輸出到C18的示例。 已為其分配了宏“樣品”

在此處輸入圖片說明

那么如何將我的代碼重用於多個日歷按鈕? 如果有代碼可以隱藏日歷按鈕,直到選中該單元格,則獎勵。

您可以在窗體打開時存儲選定的單元格,並在關閉時使用它。

Dim cell As Range 'selected cell when launched

Private Sub cmdClose_Click()
    Unload Me
End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
   On Error Resume Next
   cell.Value = DateClicked
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Set cell = Selection.Cells(1)
   If IsDate(cell.Value) Then
      Me.MonthView1.Value = cell.Value
   End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM