Board logo

標題: [發問] 請求年度週次的計算 [打印本頁]

作者: b9208    時間: 2011-11-28 16:20     標題: 請求年度週次的計算

先進您好
請求年度週次的計算
例如:2011/1/1為1101週,2011/1/3為1102週,毎週由星期一開始。
Excel中 有 WeekNUM (A3,2) 可以計算年度第幾週。
請教如何用VBA來執行計算週次?
懇請幫忙
非常感謝

[attach]8652[/attach]
作者: GBKEE    時間: 2011-11-28 16:49

回復 1# b9208
  1. Option Explicit
  2. Sub Ex()
  3.     Dim E As Range
  4.     For Each E In [C4:C10]
  5.         Cells(E.Row, "B") = Mid(Year(Date), 3) & Format(DatePart("WW", E, 2), "00")
  6.     Next
  7. End Sub
複製代碼

作者: register313    時間: 2011-11-28 16:51

回復 1# b9208

   已有WeekNUM 函數可計算週次
  為何還要用VBA
作者: oobird    時間: 2011-11-28 16:53

For i = 4 To 10
Cells(i, 2) = Format(Format(Cells(i, 3), "ww"), "1100")
Next
作者: oobird    時間: 2011-11-28 17:11

正統一些:
Sub yy()
For i = 4 To 10
Cells(i, 2) = Format(DatePart("ww", Cells(i, 3), 2, 1), "1100")
Next
End Sub
作者: b9208    時間: 2011-11-28 19:48

回復 2# GBKEE
感謝前輩指導
修正如下,日期格式為2011/2/2,則週次表示〞1102〞、"1202〞.......

For Each E In .Range(.[C4], .[C65536].End(xlUp))
            .Cells(E.Row, "B") = Mid(E, 3, 2) & Format(DatePart("WW", E, 2), "00")
            .Cells(E.Row, "D") = Weekday(E)   '以星期表示
Next

另請問 .Cells(E.Row, "D") = Weekday(E) 計算後輸出1,2,3.....7等數字表示,
經重新設定D欄格式為〞DDD〞,則可轉成 Mon, Tue, Wed......等表示,
有方法不用設定格式,而直接以Mon, Tue, Wed......等表示。
謝謝
作者: b9208    時間: 2011-11-28 19:49

回復 5# oobird
前輩
非常感謝指導
作者: GBKEE    時間: 2011-11-28 20:00

回復 6# b9208
   .Cells(e.Row, "D") = Format(Weekday(e), "ddd")   '縮寫顯示
  .Cells(e.Row, "D") = Format(Weekday(e), "dddd")   '全部顯示
作者: b9208    時間: 2011-11-28 20:13

回復 8# GBKEE
謝謝GBKEE版大
完全可以使用




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)