将月份名称和年份从主页面拉到单独的工作表

时间:2015-11-03 20:16:29

标签: excel vba excel-vba

所以我有一张包含日期栏(D)的主表。日期为01/01/2010。 我希望能够根据其他用户输入将VBA子例程中的月份名称和年份拉到sheet1。以下是我正在努力工作的一些代码,这是在主菜单中的子代码中:

Dim ws2 As Worksheet
Set ws2 = ThisWorkbook.Sheets("mainsheet")
    With ws2 
     '=YEAR(mainsheet!D2)
      ' mn = Text([Date], "mmmm")
       my= .Cells(Year(1, 3))
    End With

在我得到正确的月份和年份(2010年1月)之后,我计划将其放入一个在sheet1上进入E1的变量。

我已经移动了一些东西,我已经使用了引号,我已经尝试了范围......它只是不起作用。

3 个答案:

答案 0 :(得分:0)

要使用月份:

.cells(1,5) = MonthName(Month(.Cells(1,3).value)

获得年份:

.cells(1,5) = Year(.Cells(1,3).value)

编辑:

如果您想要的是从一个单元格到另一个单元格的月份和日期,那么

 Sheets("TargetSheetName").Cells(1,5) = format(Sheets("DataSheetName").Cells(1,3), "mmmm yyyy")

答案 1 :(得分:0)

以下是我提出的解决问题的方法。如果您的日期位于主页页面的单元格D2中,则会将月份和年份格式为“2010年1月”放入同一页面上的单元格E1中。

Public Sub test()
    Dim ws2 As Worksheet
    Set ws2 = ThisWorkbook.Sheets("mainsheet")
    With ws2
        yr = Year(.Range("D2"))
        mn = Format(.Range("D2"), "MMMM")
        .Cells(1, 5) = mn & " " & yr
        .Cells(1, 5).NumberFormat = "MMMM YYYY"         
    End With
End Sub

答案 2 :(得分:0)

试试这个:

Dim ws2 As Worksheet
Set ws2 = ThisWorkbook.Sheets("mainsheet")
    With ws2
     Dim y As Integer, m As String
     y = Year(.Range("D2"))
     m = MonthName(Month(.Range("D2")))
    End With
Set ws2 = ThisWorkbook.Sheets("Sheet1")
    With ws2
     .Range("E1") = m & " " & y
    End With