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

作者: foreverkn (時間是最好的療劑)   2023-07-20 20:05:20
我的程式碼如下:
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))"
這一列,我不知道這一列程式碼有什麼問題,請教大家幫我解惑,謝謝
作者: LPH66 (-6.2598534e+18f)   2023-07-21 18:42:00
Range 裡的 Cells 不能單獨呼叫, 仍然要用原來的語法串同一張資料表 (同一個 Sheets) 的話可以在前面加 . 簡寫就是變成 ###.Range(.Cells(###), .Cells(###))
作者: foreverkn (時間是最好的療劑)   2023-07-21 22:00:00
請問###是指 Sheets("成交量")這樣嗎?再請問所謂用原來的語法串是什麼意思?我上面的寫法的問題在哪裡?剛想了一下,我懂你的意思了
作者: ideo (ideo)   2023-07-22 22:13:00
非常感謝樓上的回答
作者: MOONRAKER (㊣牛鶴鰻毛人)   2023-07-23 15:55:00
是敘述(statement),不是語法(syntax)全世界應該只有台灣人用後者矇混前者 還覺得很高級
作者: diabolica (打回大師再改ID)   2023-07-29 11:42:00
推樓上
作者: LPH66 (-6.2598534e+18f)   2023-07-29 15:23:00
大概是我積非成是了吧 (用習慣了就這樣一直用了)
作者: MOONRAKER (㊣牛鶴鰻毛人)   2023-07-30 08:56:00
永不嫌遲 有發現就可改 :)

Links booklink

Contact Us: admin [ a t ] ucptt.com