[算表] EXCEL VBA For Each 控制項變數的錯誤

看板Office作者 (jie123)時間10年前 (2016/02/15 10:19), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
軟體:EXCEL 版本:97-2003 Private Sub Worksheet_Calculate() For Each E In Worksheets("Sheet1").Range("E1:E100") If E.Value = 100 Then Cells(E.Row, E.Column + 1).Value = "OK" End If Next E 電腦顯示編譯錯誤:For Each 控制項變數必須是 Variant 或 Object 不知道怎麼修正錯誤? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.19.151 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1455502752.A.9A2.html

02/15 10:26, , 1F
測試原文內的巨集碼並無錯誤
02/15 10:26, 1F

02/15 10:26, , 2F
要看原po是宣告變數E的類型了
02/15 10:26, 2F

02/15 10:29, , 3F
以原文來看宣告為object、variant、range或類型省略,測試
02/15 10:29, 3F

02/15 10:29, , 4F
上都是可行的
02/15 10:29, 4F

02/15 12:16, , 5F
請問如果要宣告是 Dim C As Variant 這樣嗎?
02/15 12:16, 5F

02/15 12:33, , 6F
宣告方式如原po上面回文所述
02/15 12:33, 6F

02/15 12:34, , 7F
宣告類型再以實際資料所準
02/15 12:34, 7F

02/15 13:01, , 8F
Worksheet_Calculate()整個工作表有計算就會執行,
02/15 13:01, 8F

02/15 13:02, , 9F
能不能只針對E行有變動再執行?
02/15 13:02, 9F

02/15 13:23, , 10F
那用worksheet_change針對e欄內運算到的儲存格
02/15 13:23, 10F
文章代碼(AID): #1MmJMWcY (Office)
文章代碼(AID): #1MmJMWcY (Office)