2014-12-04 90 views
1

我不明白爲什麼這個代碼有編譯出錯Next,卻沒有對 請幫助:(下一個沒有錯誤的Excel VBA

Sub DefColorCodes() 

    For i = 2 To 5 
     Range("actReg").Value = Range("Sheet1!A" & i).Value 
     ActiveSheet.Shapes.Range("actReg").Select 
     With Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCode").Value).Interior.Color 

    Next i 

    Range("B17").Select 
End Sub 
+3

你**的**下一步之前 – 2014-12-04 16:00:32

回答

6

您還沒有結束你With。在某些時候添加End With線。之前你Next i

Sub DefColorCodes() 
    For i = 2 To 5 
     Range("actReg").Value = Range("Sheet1!A" & i).Value 
     ActiveSheet.Shapes.Range("actReg").Select 
     With Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCode").Value).Interior.Color 
     End With 
    Next i 
    Range("B17").Select 
End Sub 

在這種情況下,它很可能你並不想使用With都:

Sub DefColorCodes() 
    For i = 2 To 5 
     Range("actReg").Value = Range("Sheet1!A" & i).Value 
     ActiveSheet.Shapes.Range("actReg").Select 
     Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCode").Value).Interior.Color 
    Next i 
    Range("B17").Select 
End Sub 
+0

需要一個**尾隨着**謝謝你,它的工作循環! – 2014-12-04 16:07:00

+0

@MiloKang:太好了!如果你能接受我的答案,這將讓用戶知道該解決方案爲你工作。歡迎來到堆棧溢出! – grovesNL 2014-12-04 16:26:47

2

您使用的是With語句中你與老了End With

+0

謝謝你的工作! – 2014-12-04 16:07:37