Vba for循环从数据中提取月份

Vba for循环从数据中提取月份,vba,excel,excel-2010,Vba,Excel,Excel 2010,我需要从大约4000行日期中提取月份(数字)。我知道你可以用公式(月(日))做到这一点。我已经用我的头敲击键盘,最终放弃了。似乎没有什么工作,因为它已经在另一个宏I和复制从ha。我会发布一些示例代码,但它可能会让你感到困惑…就像它对我所做的一样,哈哈 我几乎有一个开始日期,需要在旁边的栏中输入月份 Start date Month 1/25/2014 3:00 pm 1 2/20/2014 2:00 am

我需要从大约4000行日期中提取月份(数字)。我知道你可以用公式(月(日))做到这一点。我已经用我的头敲击键盘,最终放弃了。似乎没有什么工作,因为它已经在另一个宏I和复制从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
我相信你明白了

或者我可以在第一个单元格中输入月份公式,然后自动填充……任何一种方式都可以


感谢并抱歉提出基本问题,数据位于A1,位于B1输入:

=MONTH(A1)
要用VBA填充B中的单元格范围,我将使用:

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

在这里,尝试将此代码放入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,选择测试 然后单击run

  • 是的,我知道。但是要用宏自动填充它…它应该是这样的正确选择。自动填充目标:=范围(“B1”和范围(“A”和行数)。结束(xlUp)。行)我知道我现在在行数上做了什么…GAAHH这是一些小事情…谢谢你的帮助不是我在寻找什么,而是用户运行此宏的一种方式是列不断变化。谢谢你的意见!我上哪一部分了?o、 o让他们输入columnaha^.^,只需将column=inputbox(“…”)行替换为column=“A”