工作表功能Weeknum能够获取范围吗?

时间:2018-02-22 09:05:11

标签: 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)

1 个答案:

答案 0 :(得分:2)

这有些混乱。范围的默认属性是值,在许多情况下,当您看起来引用范围时,您实际上引用此范围中的值。对于WeekNum,此值是参数,而不是范围本身。我建议循环通过这个范围并计算每个单元格的周数:

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