Discussion:
執行階段錯誤’9’:型態不符合
(时间太久无法回复)
笨笨魚
2005-09-06 14:01:02 UTC
Permalink
各位高手好:
小弟寫下以下程式碼
希望在星期天顯示字型為粗體及顏色是紅色
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顯示所統計的天數
但不包含星期天
即排除星期天不計入總天數
應如何做到ㄋ
拜託各位高手…………
--
請多多指教
chijanzen
2005-09-07 06:32:02 UTC
Permalink
你好:

看了一下你的程式碼發現你的 Set c = Weekday(b) 這句用法錯誤

Weekday 函數不是物件,所以不能 Set 來引用
將你的程式碼修改一下應該能用了

Sub 星期計算()
a = Sheets("匯入").Range("f19") - Sheets("匯入").Range("f16") +
Sheets("匯入").Range("f18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
Set b = Sheets("施工數量表").Cells(i, 1)
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub


第二個問題 排除星期天不計入總天數的問題

請開啟一個新檔案,在 Sheet1 工作表 A1 儲存格輸入 10.5.2004(需要為日期格式)

A2 儲存格輸入 30.7.2004(需要為日期格式)

新增一個 Module 插入以下程式碼:

Sub test()
With Worksheets("Sheet1")
'取得兩個日期間相差的週數
w = VBA.DateDiff("ww", .Range("A1"), .Range("A2"))
'取得兩個日期間相差的天數
d = VBA.DateDiff("d", .Range("A1"), .Range("A2"))
Worksheets("Sheet2").Range("A1") = d - w
End With
End Sub
--
天行健君子以自強不息

http://www.vba.com.tw/plog/


"笨笨魚" 來函:
Post by 笨笨魚
各位高手好:
小弟寫下以下程式碼
希望在星期天顯示字型為粗體及顏色是紅色
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 08:11:04 UTC
Permalink
Sub 匯入日期()
a = Sheets("匯入").Range("g19") - Sheets("匯入").Range("g16") +
Sheets("匯入").Range("g18")
For i = 0 To a
Sheets("施工數量表").Range("a:a").NumberFormatLocal = "[$-404]e/m/d;@"
Sheets("施工數量表").Cells(i + 2, 1) = Sheets("匯入").Range("g16") + i
Sheets("施工數量表").Cells(1, 1) = "日期"
Sheets("施工數量表").Columns("A:A").Font.Size = 10
Sheets("施工數量表").Columns("A:A").EntireColumn.AutoFit
Call 星期計算
Next i
End Sub
Sub 星期計算()
a = Sheets("匯入").Range("g19") - Sheets("匯入").Range("g16") +
Sheets("匯入").Range("g18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
Setb = Sheets("施工數量表").Cells(i, 1).Value
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
以上為小弟程式碼再加chijanzen大大您的加持檔案
實際執行時卻沒有把星期天部分的字型.顏色.大小做改變耶
可否請大大您的指導
另於執行天數統計排除星期日天數部份於執行時發生
執行階段錯誤’13’型態不符合
的問題
可否請高手解惑ㄋ
--
請多多指教


"chijanzen" 來函:
Post by chijanzen
看了一下你的程式碼發現你的 Set c = Weekday(b) 這句用法錯誤
Weekday 函數不是物件,所以不能 Set 來引用
將你的程式碼修改一下應該能用了
Sub 星期計算()
a = Sheets("匯入").Range("f19") - Sheets("匯入").Range("f16") +
Sheets("匯入").Range("f18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
Set b = Sheets("施工數量表").Cells(i, 1)
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
第二個問題 排除星期天不計入總天數的問題
請開啟一個新檔案,在 Sheet1 工作表 A1 儲存格輸入 10.5.2004(需要為日期格式)
A2 儲存格輸入 30.7.2004(需要為日期格式)
Sub test()
With Worksheets("Sheet1")
'取得兩個日期間相差的週數
w = VBA.DateDiff("ww", .Range("A1"), .Range("A2"))
'取得兩個日期間相差的天數
d = VBA.DateDiff("d", .Range("A1"), .Range("A2"))
Worksheets("Sheet2").Range("A1") = d - w
End With
End Sub
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
各位高手好:
小弟寫下以下程式碼
希望在星期天顯示字型為粗體及顏色是紅色
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顯示所統計的天數
但不包含星期天
即排除星期天不計入總天數
應如何做到ㄋ
拜託各位高手…………
--
請多多指教
chijanzen
2005-09-08 01:20:02 UTC
Permalink
你好:

有些問題點需要修改

1.Sub 星期計算() 程序中的

Set b = Sheets("施工數量表").Cells(i, 1).Value 這行

b 的型態為 Range ,所以應該改為

Set b = Sheets("施工數量表").Cells(i, 1)

2. c = Weekday(b) 這行要確保 b 的值為 日期型態
所以要做防呆措施多加這一句

IsDate(Sheets("施工數量表").Cells(i, 1))

完整程式碼如下:
Sub 星期計算()
a = Sheets("匯入").Range("g19") - Sheets("匯入").Range("g16") +
Sheets("匯入").Range("g18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" And _
IsDate(Sheets("施工數量表").Cells(i, 1)) Then
Set b = Sheets("施工數量表").Cells(i, 1)
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
--
天行健君子以自強不息

http://www.vba.com.tw/plog/


"笨笨魚" 來函:
Post by 笨笨魚
Sub 匯入日期()
a = Sheets("匯入").Range("g19") - Sheets("匯入").Range("g16") +
Sheets("匯入").Range("g18")
For i = 0 To a
Sheets("施工數量表").Cells(i + 2, 1) = Sheets("匯入").Range("g16") + i
Sheets("施工數量表").Cells(1, 1) = "日期"
Sheets("施工數量表").Columns("A:A").Font.Size = 10
Sheets("施工數量表").Columns("A:A").EntireColumn.AutoFit
Call 星期計算
Next i
End Sub
Sub 星期計算()
a = Sheets("匯入").Range("g19") - Sheets("匯入").Range("g16") +
Sheets("匯入").Range("g18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
Setb = Sheets("施工數量表").Cells(i, 1).Value
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
以上為小弟程式碼再加chijanzen大大您的加持檔案
實際執行時卻沒有把星期天部分的字型.顏色.大小做改變耶
可否請大大您的指導
另於執行天數統計排除星期日天數部份於執行時發生
執行階段錯誤’13’型態不符合
的問題
可否請高手解惑ㄋ
--
請多多指教
"chijanzen" 來函:
Post by chijanzen
看了一下你的程式碼發現你的 Set c = Weekday(b) 這句用法錯誤
Weekday 函數不是物件,所以不能 Set 來引用
將你的程式碼修改一下應該能用了
Sub 星期計算()
a = Sheets("匯入").Range("f19") - Sheets("匯入").Range("f16") +
Sheets("匯入").Range("f18")
For i = 1 To a
If Sheets("施工數量表").Cells(i, 1) <> "" Then
Set b = Sheets("施工數量表").Cells(i, 1)
c = Weekday(b)
If c = 1 Then
With b.Font
.FontStyle = "粗體"
.Size = 12
.ColorIndex = 3
End With
End If
End If
Next i
End Sub
第二個問題 排除星期天不計入總天數的問題
請開啟一個新檔案,在 Sheet1 工作表 A1 儲存格輸入 10.5.2004(需要為日期格式)
A2 儲存格輸入 30.7.2004(需要為日期格式)
Sub test()
With Worksheets("Sheet1")
'取得兩個日期間相差的週數
w = VBA.DateDiff("ww", .Range("A1"), .Range("A2"))
'取得兩個日期間相差的天數
d = VBA.DateDiff("d", .Range("A1"), .Range("A2"))
Worksheets("Sheet2").Range("A1") = d - w
End With
End Sub
--
天行健君子以自強不息
http://www.vba.com.tw/plog/
"笨笨魚" 來函:
Post by 笨笨魚
各位高手好:
小弟寫下以下程式碼
希望在星期天顯示字型為粗體及顏色是紅色
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顯示所統計的天數
但不包含星期天
即排除星期天不計入總天數
應如何做到ㄋ
拜託各位高手…………
--
請多多指教
Loading...