Excel 需要更正VBA代码。获取错误消息。”;对于已在使用的控制变量;
我在Excel中使用VBA 我收到一条错误消息,说控制变量已经在使用中。当错误弹出时,中每个r的第二个将在VBA编辑器中突出显示。有人可以帮助更正此代码吗。多谢各位Excel 需要更正VBA代码。获取错误消息。”;对于已在使用的控制变量;,excel,vba,Excel,Vba,我在Excel中使用VBA 我收到一条错误消息,说控制变量已经在使用中。当错误弹出时,中每个r的第二个将在VBA编辑器中突出显示。有人可以帮助更正此代码吗。多谢各位 Dim ws As Worksheet Dim r As Range For Each ws In Worksheets If InStr(1, ws.Name, "Wk", 1) > 0 Then For Each r In ws.Range("C118:I124") For Eac
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
If InStr(1, ws.Name, "Wk", 1) > 0 Then
For Each r In ws.Range("C118:I124")
For Each r In ws.Range("C163:J168")
For Each r In ws.Cell(E2, E15, E28, E41, E54, E67, E80)
r.Formula = Replace(r.Formula, "Wk1", r.Parent.Name)
Next r
End If
Next ws
MsgBox "Done"
End Sub
您尝试运行三个不同的范围,即连接这些范围。然而,这不是每个的
的工作方式,您必须将其分解
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
If InStr(1, ws.Name, "Wk", 1) > 0 Then
For Each r In ws.Range("C118:I124")
r.Formula = Replace(r.Formula, "Wk1", r.Parent.Name)
Next r
For Each r In ws.Range("C163:J168")
r.Formula = Replace(r.Formula, "Wk1", r.Parent.Name)
Next r
Range("E2").Formula = Replace(Range("E2").Formula, "Wk1", Range("E2").Parent.Name)
Range("E15").Formula = Replace(Range("E15").Formula, "Wk1", Range("E15").Parent.Name)
Range("E28").Formula = Replace(Range("E28").Formula, "Wk1", Range("E28").Parent.Name)
Range("E41").Formula = Replace(Range("E41").Formula, "Wk1", Range("E41").Parent.Name)
Range("E54").Formula = Replace(Range("E54").Formula, "Wk1", Range("E54").Parent.Name)
Range("E67").Formula = Replace(Range("E67").Formula, "Wk1", Range("E67").Parent.Name)
Range("E80").Formula = Replace(Range("E80").Formula, "Wk1", Range("E80").Parent.Name)
End If
Next ws
MsgBox "Done"
End Sub
编辑:更改以容纳注释。它没有变得更漂亮,但恐怕没有办法让调用几个松散的单元格变得更优雅。每个For Each
循环必须用相应的Next
语句关闭。您的代码为每个循环“打开”了4个,但只“关闭”了其中的两个循环。此外,每个
循环的两个最里面的与外部循环共享相同的循环变量(r
),这是不可能的:每个循环都必须有自己的循环变量谢谢,。我试过那个代码,但现在我收到一条错误消息,代码中突出显示的单元格E2表示变量未定义感谢花时间键入代码。我将其粘贴到编辑器中,但我收到一条“对象变量或未设置块变量”错误消息。在您键入的代码中,E54附近还缺少一个引号,以防有人想使用它。@沮丧成倍增加了我的错误:在最后一部分中,将r.formula
更改为Range(“EXX”)。formula
即。与=
左侧的代码相同。不要倒立。当你说最后一部分时,你的意思是r.formula最后一次出现在代码中吗。什么是“EXX”。你会打字吗it@frustrationmultiplied答案已编辑。但是-不想听起来很刺耳-当您没有掌握这些指令或调试此类错误时,为什么要编写VBA?