首页 > 解决方案 > 在 Excel 中,我如何通过一行代码检查下拉选择的值是什么。然后,我如何检查该值与另一个值

问题描述

我正在尝试创建一个宏,该宏首先允许用户根据下拉列表轻松地将数据传输到另一个工作表以选择月份。我希望用户能够在我创建的字段中输入日期,然后使用工作表上的按钮首先选择要粘贴的月份,然后确认粘贴。我在名为“DB - Ref Monthly”的工作表上有十二个从 Ref_Jan 到 Ref_Dec 的命名范围我正在努力将这些部分组合在一起,但我的测试程序被困在这里:

   Sub Button8_Click()


Dim MonthSelector As Range
Dim Ref_May As Range

    If Range("MonthSelector") = Range("Ref_May") Then
            Sheets("DB - Ref Current").Range("Ref_Current").Copy
            Sheets("DB - Ref Monthly").Range("Ref_May").PasteSpecial xlPasteAll

        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    Else
    End If




End Sub

我目前的计划是每个月使用 12 个 if 语句来引用,因为我已经在另一张表中复制/粘贴了代码的部分。如果我对这一切都错了,我不会介意一些指导。如果我不清楚并且可以提供更多信息,请告诉我。

标签: excelvba

解决方案


使用循环来迭代几个月,然后无需复制代码逻辑。

Dim arrMonth As New Collection
Dim idx As Integer
Dim val As String

Call arrMonth.Add("Jan")
Call arrMonth.Add("Feb")
Call arrMonth.Add("Mar")
'..etc..
Call arrMonth.Add("Dec")

For idx = 1 To arrMonth.Count
    val = arrMonth.Item(idx)
    Call MsgBox(idx & "=" & val)
Next

推荐阅读