我似乎无法弄清楚为什么这不起作用。当我选择应该激活或触发 vba 代码的下拉选项时,什么都没有发生。我在 Sheet1 下有以下代码,名为 (2Weeks)(...右键单击并粘贴到该工作表的查看代码窗口中)。这就是我所有的代码……目前没有模块。我有 (General) 作为对象选择和 (ListBox1_Change)(这是单元格 B4 中的下拉列表),用于过程。B4 是一个带有下拉列表的单元格,其中包含一堆日期范围(见下文),例如这两个……(08/01/2024 - 08/18/2024, 11/11/2024 - 12/01/2024)。我确实正确完成了单元格 B4 的数据验证……选择列表和日期范围作为参考等。顺便问一下,我必须有一个组合框而不是列表框才能使此代码工作吗?如果选择了上面列出的两个日期范围,则应从当前工作表更改为另一张工作表 Sheet2,名为 3Weeks。切换到另一张工作表时,如果可能,用户将位于新工作表的单元格 B4 上。两个工作表名称为 sheet1=2Weeks 和 sheet2=3Weeks。有人能解决这个问题或想出一个完全不同的代码来实现这一点吗?另外,我是否可以在日期之间使用 OR 语句,以便如果用户选择任一日期都会触发 vba 代码?可以有两个以上的日期来触发 VBA 吗?如果是这样,代码中会有更多的 OR 语句吗?(顺便说一句,没有 Change-Worksheet 或 Worksheet-Change 或类似内容的标签,因此不幸的是缺少标签。)
Private Sub ListBox1_Change(ByVal Target As Range)
On Error Resume Next
If Not (Application.Intersect(Range("B4"), Target) Is Nothing) Then _
ThisWorkbook.2Weeks(Target.Value = "08/01/2024 - 08/18/2024" OR Target.Value = "11/11/2024 - 12/01/2024").Range("B4").Activate
End If
End Sub```
The B4 cell drop down references L3:L23 and looks like this:
07/15/2024 - 07/31/2024
08/01/2024 - 08/18/2024
08/19/2024 - 09/01/2024
09/02/2024 - 09/15/2024
09/16/2024 - 09/29/2024
09/30/2024 - 10/13/2024
10/14/2024 - 10/27/2024
10/28/2024 - 11/10/2024
11/11/2024 - 12/01/2024
11/30/2024 - 12/13/2024
12/14/2024 - 12/31/2024 …etc.