使用excel vba将单元格值格式化为“MMMM”
我有下面的代码,我需要一些帮助修改。
Sub CopyDataBasedOnTimeRangeMonth() Dim i, LastRow Dim Cell As Range LastRow = Sheets("OPA").Range("A" & Rows.Count).End(xlUp).Row Sheets("Sheet2").Range("A3:U500").ClearContents For i = 2 To LastRow If Sheets("OPA").Cells(i, "G").Value >= Range("U1") And Sheets("OPA").Cells(i, "G").Value < Range("AC1") Then Sheets("OPA").Cells(i, "R").EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) End If Next i End Sub
对于“G”的计算,我想使用正在计算的值的“MMMM”格式。 在一个Excel的公式中,我可以使用文本(“G12”,“MMMM”),然后继续公式,但我不知道如何修改关于代码只是使用“月”唯一值“G”。
预先感谢您提供的任何帮助。
你可以在下面看到你的代码的变体,它已经使用Davesexcel
(+1)提供的变体进行了更新,还有一些来自我身边的修正,只是为了简化可读性:
1)绝对引用Range()
replace为[]
速记方法;
2)删除Destination:=
过度,目的地范围也被行取代,因为当你复制行时,目的地应该是行;
3)应用with (object)
方法;
4)增加variables的types,例如, i
用i&
取代(意味着i as long
)
Sub CopyDataBasedOnTimeRangeMonth() Dim i&, LastRow&, Cl As Range LastRow = Sheets("OPA").Range("A" & Rows.Count).End(xlUp).Row Sheets("Sheet2").[A3:U500].ClearContents With Sheets("OPA") For i = 2 To LastRow If Month(.Cells(i, "G")) >= Month(.[U1]) And _ Month(.Cells(i, "G")) < Month(.[AC1]) Then .Rows(i).Copy Sheets("Sheet2").Rows(Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1) End If Next i End With End Sub
testing,工作正常。
资源:
目的地:
最好是以[U1]作为date,然后格式化为月份
If Month(Sheets("OPA").Cells(i, "G")) >= Month(Range("U1"))