2014-10-29 5 views
0

Я хочу установить конкретную дату (October 06 , 2014), чтобы быть 1-й неделей года. Поэтому, когда я использую =weeknum()formulaR1C1, он вернет номер недели.VBA Укажите конкретную дату, чтобы быть первой неделей года

В настоящее время я работаю над рабочим листом, который обновляется ежедневно, поэтому номер недели будет обновляться каждую неделю. В столбце («D») указывается номер недели. и столбец («B») указывает суточную дату.

Если я использую =weeknum() формула на нем возвращает значение 41, но это должно быть номер недели 1.

+2

Любая причина, по которой вы не могли просто всегда делать "= weeknum() - 40". –

+1

Вот статья, в которой перечислены, как это сделать в VBA: http://www.cpearson.com/excel/WeekNumbers.aspx. – BobbitWormJoe

+0

Hi Andrew L, я не могу использовать его, потому что это повлияет на другие даты, скажем, я использую его 12 октября 2014 года, оно вернется как неделя № 2. но на самом деле прошло всего 6 дней, чтобы это считалось неделя номер 2. он все еще только на 1-й неделе – Jarlee

ответ

1

Как о создании персональной функции? Он состоит только из подсчета количества дней между датой, которую вы вставляете (myDate), и датой, которая считается первым днем ​​года (first_day), делением этого числа на 7, взятием его целого числа и сложения 1 Это всегда даст вам право.

Public Function special_weeknum(ByVal myDate As Date) As Integer 

    Dim first_day As Date: first_day = #10/6/2014# 
    Dim myWeek As Integer: myWeek = Int((myDate - first_day)/7) + 1 
    special_weeknum = myWeek 

End Function 

Пожалуйста, обратите внимание, что этот подход позволит вам также пройти первый день в качестве пользовательского ввода:

Public Function special_weeknum(ByVal myDate As Date, ByVal first_day As Date) 
    Dim myWeek As Integer: myWeek = Int((myDate - first_day)/7) + 1 
    special_weeknum = myWeek 
End Function 

, так что вы всегда сможете решить, какой день вы должны считать первый день года.

+0

Спасибо Matteo NNZ, что он работает сейчас – Jarlee

Смежные вопросы