for循环从数据中提取月份

时间:2014-07-18 16:32:05

标签: excel vba excel-vba excel-2010

我需要大约4000行日期来提取月份(数字)。我知道你可以用一个公式(月(日期))做到这一点我已经击败了这个键盘并终于放弃了。似乎没有什么工作像它在另一个宏我和从ha复制。我会发布一些示例代码,但它可能会让你感到困惑......因为它对我做了大声笑。

几乎我有一个开始日期,需要在它旁边的列中输入月份

Start date                    Month
1/25/2014 3:00 pm              1
2/20/2014 2:00 am              2
1/5/2014 1:00 pm               1

我相信你能得到这张照片。

或者我可以在第一个单元格中输入月份公式,然后自动填充它......无论哪种方式都适合我

感谢并抱歉基本问题

2 个答案:

答案 0 :(得分:1)

B1 中的 A1 中的数据输入:

=MONTH(A1)

要使用 VBA 填充 B 列中范围的单元格,我会使用:

Sub FillIt()
    Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Formula = "=MONTH(A1)"
End Sub

答案 1 :(得分:1)

在这里,尝试将此代码放入vba模块,然后通过单击宏运行它。它会提示您输入列,然后自动执行其他操作。

Public Sub test()
    Dim column As String
    Dim cell As Object

    On Error GoTo ErrorHandler
    column = InputBox("Enter column" & vbNewLine & "Example: D")

    On Error Resume Next
    For Each cell In Range(column & "1:" & column & ActiveSheet.UsedRange.Rows.Count)
        With Cells(cell.Row, cell.column + 1)
            .NumberFormat = "@"
            .Value = Month(cell.Value)
        End With

    Next cell

    Exit Sub
ErrorHandler:
    MsgBox "Invalid column"
End Sub
  • 要从Excel打开VBA编辑器,请按alt + f11
  • 在VBA编辑器的左侧有一个“项目”层次结构。
  • 在层次结构中,右键单击您正在处理的项目以创建模块。
  • 将代码粘贴到模块中。
  • 返回包含日期的工作表,按alt + f8,选择测试 然后单击“运行”