[VBA ] 請教 執行階段錯誤'1004'

看板Visual_Basic作者 (時間是最好的療劑)時間1年前 (2023/07/20 20:05), 編輯推噓4(409)
留言13則, 5人參與, 最新討論串1/1
我的程式碼如下: Dim i, j, n, m As Integer Dim V5, V10, V20, V60, V120, V240 As Double Dim R5, R10, R20, R60, R120, R240 As Range n = Sheets("成交量").Cells(Rows.Count, 3).End(xlUp).Row m = Sheets("成交量").Cells(11, Columns.Count).End(xlToLeft).Column For i = 12 To n Sheets("得分").Cells(i, 1) = Sheets("成交量").Cells(i, 1) Sheets("得分").Cells(i, 2) = Sheets("成交量").Cells(i, 2) Sheets("得分").Cells(i, 3) = Sheets("成交量").Cells(i, 3) V = Sheets("成交量").Cells(i, m) Set R5 = Sheets("成交量").Range(Cells(i, m - 4), Cells(i, m)) Sheets("得分").Range("B1") = WorksheetFunction.Max(R5) If V = WorksheetFunction.Max(Sheets("成交量").Range(Cells(i, m - 4), _ Cells(i, m))) Then Sheets("得分").Cells(i, 6) = 1 End If Next 執行後出現 執行階段錯誤'1004': 應用程式或物件定義上的錯誤 有問題的是 "Set R5 = Sheets("成交量").Range(Cells(i, m - 4), Cells(i, m))" 這一列,我不知道這一列程式碼有什麼問題,請教大家幫我解惑,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.132.77 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1689854722.A.AED.html

07/21 18:42, 1年前 , 1F
Range 裡的 Cells 不能單獨呼叫, 仍然要用原來的語法串
07/21 18:42, 1F

07/21 18:42, 1年前 , 2F
同一張資料表 (同一個 Sheets) 的話可以在前面加 . 簡寫
07/21 18:42, 2F

07/21 18:43, 1年前 , 3F
就是變成 ###.Range(.Cells(###), .Cells(###))
07/21 18:43, 3F

07/21 22:00, 1年前 , 4F
請問###是指 Sheets("成交量")這樣嗎?
07/21 22:00, 4F

07/21 22:02, 1年前 , 5F
再請問所謂用原來的語法串是什麼意思?我上面的寫法的問
07/21 22:02, 5F

07/21 22:03, 1年前 , 6F
題在哪裡?
07/21 22:03, 6F

07/22 00:01, 1年前 , 7F
剛想了一下,我懂你的意思了
07/22 00:01, 7F

07/22 22:13, 1年前 , 8F
非常感謝樓上的回答
07/22 22:13, 8F

07/23 15:55, 1年前 , 9F
是敘述(statement),不是語法(syntax)
07/23 15:55, 9F

07/23 15:56, 1年前 , 10F
全世界應該只有台灣人用後者矇混前者 還覺得很高級
07/23 15:56, 10F

07/29 11:42, , 11F
推樓上
07/29 11:42, 11F

07/29 15:23, , 12F
大概是我積非成是了吧 (用習慣了就這樣一直用了)
07/29 15:23, 12F

07/30 08:56, , 13F
永不嫌遲 有發現就可改 :)
07/30 08:56, 13F
文章代碼(AID): #1akIC2hj (Visual_Basic)
文章代碼(AID): #1akIC2hj (Visual_Basic)