Vba 使用循环清除内容
我编写了以下代码来检查A行中的值是否等于Forecast then Range D5:D53的内容是否应该被清除 第1行是一个vlookup,因此有一个公式可以导出实际值或预测值Vba 使用循环清除内容,vba,excel,Vba,Excel,我编写了以下代码来检查A行中的值是否等于Forecast then Range D5:D53的内容是否应该被清除 第1行是一个vlookup,因此有一个公式可以导出实际值或预测值 Dim k As Integer For k = 1 To 13 If Sheets("2017 Forecast").Cells(k, 1).Value = "Forecast" Then Sheets("2017 Forecast").Range("D5:D53").Select.Clea
Dim k As Integer
For k = 1 To 13
If Sheets("2017 Forecast").Cells(k, 1).Value = "Forecast" Then
Sheets("2017 Forecast").Range("D5:D53").Select.ClearContents
End If
Next k
也许这对你有用
Option explicit
Sub Compare skies()
Dim k As long
Dim ValueRead as variant
With Sheets("2017 Forecast")
For k = 1 To 13
ValueRead = .Cells(k, 1).Value
' Slow, case insensitive string comparison '
If strcomp(ValueRead,"Forecast",vbtextcompare) = 0 Then
.Range("D5:D53").ClearContents ' You want to clear the exact same range 13 times? '
Elseif strcomp(ValueRead,"Actual",vbtextcompare) <> 0 then
Msgbox("VLOOKUP returned a value outside of Actual and Forecast")
End if
Next k
End with
End sub
在使用ClearContent之前,不需要使用Select
也可以尝试添加UCASE,以确保在正文的中间没有任何大写字母。 代码
对不起,我应该澄清第3行的代码错误,即它没有清除内容…只需删除。选择-没有理由在那里-只需使用Sheets2017 Forecast。范围5:D53.ClearContents您提到的是A行。您是指A列还是第1行?一旦你修复了Select的错误,你的代码就会出现在A列。这就是你想要的吗?如果不是,这也许可以解释为什么当您将代码更改为只查看单元格A4时,它不起作用-因为您在单元格D1中有预测。
Dim k As Integer
With ThisWorkbook.Sheets("2017 Forecast")
For k = 1 To 13
If UCase(.Cells(k, 1).Value2) = "FORECAST" Then
.Range("D5:D53").ClearContents
End If
Next k
End With