English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

各位高手好:
小弟寫下以下程式碼
希望在星期天顯示字型為粗體及顏色是紅色
Sub 星期計算()
a = Sheets("匯入").Range("f19") - Sheets("匯入").Range("f16") + Sheets("匯入").Range("f18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
b = Sheets("施工數量表").Cells(i, 1).Value
Set c = Weekday(b)
If c.Value = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
可是於
Set c = Weekday(b)
卻發生---執行階段錯誤’9’:型態不符合
應如何改善
希望各位高手能不吝幫小弟解惑
感恩
另小弟希望能將上述增加一個日子統計功能
---在sheet1分別於a1與a2輸入起始日期及終止日期
---於sheet2的a1顯示所統計的天數
但不包含星期天
即排除星期天不計入總天數
應如何做到ㄋ
拜託各位高手…………

2005-09-07 04:13:57 · 1 個解答 · 發問者 世昌 1 in 電腦與網際網路 軟體

1 個解答

你好,
第一個問題: 請試試看, 只用 c = Weekday(b)
而不是 set c = Weekday(b), 因為 set 會將weekday的整個屬性給予 c
所以產生型態不合的訊息

第二個問題: 解釋起來比較複雜
重覆你說的問題, 你要的是指
出現在起始日期及終止日期這段時間的非星期天, 的天數嗎?
還是指你的資料庫符合你的條件的筆數呢?
先假設是第2種狀況好了

sheet3的A:A 欄放置你的日期資料庫
所以sheet2的a1可以填陣列公式如下: 要按SHIFT-CTRL-ENTER輸入

=COUNT(IF(WEEKDAY(IF(IF(Sheet3!A1:A1000>=Sheet1!A1,Sheet3!A1:A1000,"")<=Sheet1!B1,IF(Sheet3!A1:A1000>=Sheet1!A1,Sheet3!A1:A1000,""),""),1)<>1,IF(IF(Sheet3!A1:A1000>=Sheet1!A1,Sheet3!A1:A1000,"")<=Sheet1!B1,IF(Sheet3!A1:A1000>=Sheet1!A1,Sheet3!A1:A1000,""),""),""))

看起來很複雜,
說明如下:
資料庫>=某日期 IF(Sheet3!A1:A1000>=Sheet1!A1,Sheet3!A1:A1000,"")
上面回傳簡寫成 AAAA
資料庫<=某日期 IF(AAAA<=Sheet1!A2, AAAA,"")
上面回傳簡寫成 BBBB
資料庫不等於星期日 IF(WEEKDAY(BBBB)<>1,BBBB,"")
上面回傳簡寫成 CCCC
計數資料量 COUNT(CCCC)

合併後, 就成了最後的公式了

若是計算2個日期間的工作天數(僅扣除星期天)
沒有現成的函數, 現成的函數會連星期六都扣除
=NETWORKDAYS(A1,B1,)
先看看你的問題是哪 一種狀況好了。

2005-09-08 07:16:18 · answer #1 · answered by Anonymous · 0 0

fedest.com, questions and answers