我正在尝试创建一个宏,以便如果L2:L318范围内的给定单元格包含特定值,则将同一行中H列中的单元格修改为新字符串。
在这一点上,我似乎可以通过,但是在运行时出现“对象必需”错误。我的代码如下:
Sub Macro2()
Dim rng As Range
Dim cell As Range
Set rng = Worksheet.Range("L2:L318")
Dim i As Integer
For Each cell In rng
If cell.Value("902.4") Then
i = i + 1
Sheet.Cells(8, i).Value = "Text"
Else
i = i + 1
End If
Next cell
End Sub
我承认我对自己在做什么一无所知,而且我的代码至少完全是胡说八道。谁能向我解释我做错了什么?任何帮助将不胜感激-今天以前我从未接触过Excel宏!
答案 0 :(得分:2)
这是一个很好的开始!您有几件事情要做,但是在大多数情况下,您相距不远。请记住,有很多方法可以做到这一点,但是由于您正在学习,所以我采用了您的方法并使之有效。看看这是否使您接近所追求的目标:
Sub Macro2()
Dim rng As Range
Dim cell As Range
Set rng = Range("L2:L318")
For Each cell In rng
If cell.Value = 902.4 Then Cells(cell.Row, 8).Value = "Text"
Next cell
End Sub
看看我发布的内容,看看是否可以制作它的正面或反面。如您所见,它与您所拥有的相差不远,只需清理一点并修复语法即可。
请记住,此宏将在当前活动的工作表上运行。如果您需要在特定工作表上运行它,则必须对范围引用进行更好的限定……例如:Worksheets(“您的工作表名称”).Range(“ L2:L318”)