根据另一列中的日期自动填充具有月份名称的列 - Excel VBA

时间:2016-06-14 10:49:51

标签: excel vba excel-vba

我是使用Excel VBA的新手,我遇到了这个问题。

我希望我的userform根据用户选择的日期在列中自动填充动态范围。当"创建"单击按钮,同时,在工作表的一列上填充日期,在其旁边的另一列上,还会根据编码的日期填充月份名称。你认为它有可能吗?非常感谢您的努力。谢谢!

Private Sub CommandButton1_Click()
    If Week <> "" Then
        Dim ws As Worksheet
        Dim LR1 As Long
        Dim LR3 As Long
        Dim LR4 As Long

        Set ws = ThisWorkbook.Sheets("Sheet1")

        ' get the last row from columns that has a value
        LR1 = ws.range("A" & ws.Rows.Count).End(xlUp).Row
        LR3 = ws.range("C" & ws.Rows.Count).End(xlUp).Row + 1
        LR4 = ws.range("D" & ws.Rows.Count).End(xlUp).Row + 1

        ' use the last row to determine how far down to extend the formula
        ws.range("D" & LR4 & ":D" & LR1).Value = Me.Week.Value
        ws.range("C" & LR3 & ":C" & LR1).Value = Me.DTPicker1.Value
    Else
        MsgBox "Please fill all fields!"
    End If
    Unload Me
End Sub

Create Template GUI

2 个答案:

答案 0 :(得分:1)

我不确定我是否正确了解情况,但也许您可以使用&#34; .formula = application.worksheetfunction(&#34; = month(...)&#填写第二列34)

答案 1 :(得分:0)

要在B列中添加月份名称,请将其添加到您的代码中:

    Dim LR2 As Long
    ' ... 
    LR2 = ws.Range("B" & ws.Rows.Count).End(xlUp).Row + 1
    ' ...
    ws.Range("B" & LR2 & ":B" & LR1).FormulaR1C1 = "=TEXT(R[0]C[1], ""mmm"")"

这实际上会在B列中插入一个公式,表示旁边单元格的月份名称。