VBA中的组合框更改时,在多个文本框中添加月份名称

时间:2018-08-24 15:43:20

标签: vba

我有一个带有月份名称列表的组合框和十二个文本框。

我想编写代码,以便在组合框中选择月份名称时可以添加月份名称。

在组合框中选择一月时,textbox1的值将为一月,textbox2的值为二月,依此类推...

我如何完成此任务?

1 个答案:

答案 0 :(得分:0)

假设:按月份从组合框中的Jan开始(即Jan索引0,Feb索引1)。这两个答案都使用2000年的通用日期并选择了月份,并为其添加了一个月。.将在12月之后循环回到1月。

此代码还假定文本框在表单上顺序排列。

    Private Sub cboMonth_Change2()
        Dim TempDate As Date
        TempDate = "2000-" & cboMonth.ListIndex + 1 & "-01"

        Dim oControl As Control
        For Each oControl In UserForm1.Controls
            If TypeName(oControl) = "TextBox" Then
                oControl.Text = Format(TempDate, "MMMM")
                TempDate = DateAdd("M", 1, TempDate)
            End If
        Next
    End Sub

这是一个稍微手动的过程,但是您可以指定哪个文本框得到什么。

    Private Sub cboMonth_Change()
        Dim TempDate As Date
        TempDate = "2000-" & cboMonth.ListIndex + 1 & "-01"

        TextBox1.Text = Format(DateAdd("M", 0, TempDate), "MMMM")
        TextBox2.Text = Format(DateAdd("M", 1, TempDate), "MMMM")
        TextBox3.Text = Format(DateAdd("M", 2, TempDate), "MMMM")
        ...
    End Sub