编码新手——请多多包涵!
我正在尝试为在工作簿打开和工作表更改发生时开始的日期添加创建事件过程。
用户在 F3:F50 范围内手动输入“结算”日期。反过来,我希望另一个日期自动插入到 D3:D50 范围内,即早 60 天。
Private Sub Workbook_Open()
Sheet1.EventProc1 Sheet1.Range("D3:D50")
End Sub
^^我的理解:在指定范围内启动 sheet1 的事件过程。
Private Sub Worksheet_Activate()
EventProc1 Me.Range("D3:D50")
End Sub
^^打开工作表时做同样的事情。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
EventProc1 Intersect(Target, Me.Range("F3:F50"))
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
^^这是开始变得混乱的地方。我做了相交 F3:F50 认为我希望在检测到 F3:F50 中输入的新数据时发生工作表更改(这反过来会影响 D3:D50)。
Sub EventProc1(rng As Range)
Dim cell As Range
Dim Closeout As Date
If rng Is Nothing Then Exit Sub
For Each cell In rng.Cells
Closeout = Range("F3:F50").Value
Select Case cell
Case Date: Cells.Value = DateAdd("d", -60, Closeout)
Case Else: Cells.ClearContents
End Select
Next
End Sub
^^我对主要代码的尝试。我正在逐步调整它以尝试让它工作,直到我的调试器开始给我一个字符串“Closeout = Range("F3:F50").Value”的类型不匹配错误并且我的新手技能被难住了。
有什么建议么?我将其设置为 EventProc 的原因是因为我将在其上添加更多 EventProc。提前谢谢。