看板 Visual_Basic 關於我們 聯絡資訊
我針對一些數據判定大小來上色 第三行和第五到七行都是有著小數點後兩位的數字 執行結果其中一行程式碼出現型態不符合的錯誤 請各位幫我看一下是哪裡有問題,謝謝! 程式碼如下 : Dim i As Integer Dim n As Integer Dim p As Single Dim p1 As Single n = WorksheetFunction.CountA(Columns("A:A")) Rows("7:300").Select Selection.Interior.ColorIndex = xlNone For i = 8 To n + 5 p = Cells(i, 3).Value For j = 5 To 7 p1 = Cells(i, j).Value <--- 這一行呈現黃色,錯誤訊息為 執行階段錯誤 '13':型態不符合 If WorksheetFunction.And(p < (p1 * 1.05), p > p1) Then Cells(i, j).Select With Selection.Interior .ColorIndex = 35 .Pattern = xlSolid End With ElseIf p < p1 Then Cells(i, j).Select With Selection.Interior .ColorIndex = 50 .Pattern = xlSolid End With End If Next j Next i -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.169.180.124
MOONRAKER:前面dim多此一舉,拿掉便不會錯。 01/02 02:54
ClubT:宣告變數是多此一舉嗎? 改成下面這樣應該OK 01/02 09:21
ClubT:p1 = CDBL(Cells(i, j).Value) 01/02 09:22
MOONRAKER:以這個用途而言我認為不需要…當然也是因為我從不習慣 01/02 10:35
MOONRAKER:VB的轉型函數,不如跳過。就算到.NET也不習慣。 >(=) 01/02 10:36
foreverkn:我拿掉宣告和使用CDBL都還是不行,如果不宣告,由於數據 01/02 11:36
foreverkn:有小數點,p和p1比較大小時似乎有誤..... 01/02 11:36
knstt:把integer 改為long試看看 01/03 22:05
knstt:檢查一下資料型態是不是有問題 01/03 22:10
ClubT:檢查回圈跑到所有欄位是否都是數字類型的 01/04 09:02
ClubT:而且你難道看不出來是在哪個儲存格出錯嗎? 應該很容易吧 01/04 09:03