Vba 工作表函数Weeknum是否可以取值范围?

Vba 工作表函数Weeknum是否可以取值范围?,vba,excel,Vba,Excel,当我使用像cell(5,34)这样的单个单元格值时,它是有效的,但当我有一系列单元格时它就不起作用了 MyRange = Worksheets("POR_Days").Range(Cells(5, 31), Cells(5, 34)).Value Worksheets("Sheet1").Range(Cells(3, 31), Cells(3, 34)).Value = Application.WorksheetFunction.WeekNum(MyRange, 21) 这有点乱。range

当我使用像cell(5,34)这样的单个单元格值时,它是有效的,但当我有一系列单元格时它就不起作用了

MyRange = Worksheets("POR_Days").Range(Cells(5, 31), Cells(5, 34)).Value

Worksheets("Sheet1").Range(Cells(3, 31), Cells(3, 34)).Value = Application.WorksheetFunction.WeekNum(MyRange, 21)

这有点乱。range的默认属性是value,在许多情况下,当您似乎引用range时,实际上引用的是该范围中的值。对于WeekNum,此值是一个参数,而不是范围本身。我建议sugges循环这个范围,并计算每个单元格的周数:

Sub MySub()
    Dim MyRange As Range
    Dim cl As Range

    Set MyRange = Worksheets("POR_Days").Range(Cells(5, 31), Cells(5, 34))

    For Each cl In MyRange
        cl.Offset(-2).Value = Application.WorksheetFunction.WeekNum(cl, 21)
    Next cl

End Sub