【发布时间】:2016-07-25 12:36:06
【问题描述】:
vba 的新手在这里。我正在尝试通过将其嵌套在另一个 For Each 循环中,将一个简单的 For Each 循环(它使单元格
当我尝试在下面运行我的代码时,我收到一个错误,我不确定它是否与将工作表作为 Set 语句中的变量有关。
似乎无法弄清楚/找到解决方案。
谢谢
Sub deleteNegativeValue()
Application.DisplayAlerts = False
Dim lastRow As Long
Dim ws As Worksheet
Dim cell As Range
Dim res As Range
For Each ws In Workbooks(1).Worksheets
Set res = ws.Range("1:1").Find("Value", lookat:=xlPart)
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
For Each cell In Range(ws.Cells(1, res.Column), ws.Cells(lastRow, res.Column))
If cell < 0 Then cell = ""
Next
Next
End Sub
【问题讨论】:
-
错误在哪一行?
-
运行时错误'91':对象变量或未设置块变量。错误似乎在第二个 For Each bit
-
除了下面的建议之外,您还需要进行测试以确保找到“值”,您可能返回一个没有任何内容的范围对象。
-
而不是
Dim cell As Range我认为应该是Dim cell As Cell -
@PaulOgilvie Cell 因为范围是正确的。对于 excel vba。