首页 > 解决方案 > 编写 VBA 函数以查找句号。和周没有。13 期

问题描述

概述:我基本上想编写一个版本的 MONTH 函数来工作 13 个周期的工作年......

(免责声明:我是 VBA 的新手)将日期 dd/mm/yyyy 重新格式化为期间编号(1-13)和周编号(1-4)的最佳方法是什么?我已经使用了 WEEKNUM 函数来弄清楚它,但我似乎不太明白。我认为问题在于新年的开始(第 1 期,第 1 周)是在 12/30/18 并且在 excel 中,它将此日期视为第 5 周甚至第 6 周,通过它的测量方式。

星期从星期日开始,一年中的每个时期 (13) 有 4 周。到目前为止,我已经尝试过:

-我也尝试过使用 WEEKNUM 函数,但我不知道如何让它给我每个透视周期的数字 1-4

非常感谢你的帮助!非常感激

标签: excelvba

解决方案


1)根据VBA的代码规则有一个问题:

对于每个 Function PeriodNum(serial_num As Date, number_periods As Integer, start_date As Date) 定义,您还应该使用行:

周期数 = ...

通过这种方式,您从函数返回一个值(类似于 return x; 在其他语言中)

2) 使用 Selection 对象是不可预测的,并且可以在调用方法时更改您在 Excel 中处于活动状态的任何单元格。如果您使用计算方法,您应该使用类似的方法:

Function weekCompute(date1)
    '...
    weekCompute = "val1"
End Function

使用此函数,您可以使用此单元格公式:=weekCompute(A1)


推荐阅读