所以我有一张包含日期栏(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的变量。
我已经移动了一些东西,我已经使用了引号,我已经尝试了范围......它只是不起作用。
答案 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