2014-12-04 91 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