所以我正在尝试编写一个可以写出"午餐"如果前一个单元格有单词"午餐"午餐通过if语句填充在单元格中。我想有一些vba代码来读取行中的每个单元格,如果它找到单词午餐。接下来的3个单元格现在将包含单词lunch。我想在单元格中保留公式,以便电子表格的功能保持一致。这是我到目前为止所写的内容。但它没有按预期工作。请帮忙
Public Sub WriteLunchToCell()
Dim rg As Range
For Each rg In Sheet1.Range("BY62:FP62")
If InStr(1, rg.Value, "Lunch", vbTextCompare) Then
rg.Offset(, 1) = "Lunch"
rg.Offset(, 2) = "Lunch"
rg.Offset(, 3) = "Lunch"
End If
Next
End Sub
答案 0 :(得分:0)
尝试这样的事情:
Set Rng = Range("a1:a6")
For Each cel In Rng
If InStr(UCase(cel.Value), "LUNCH") <> 0 Then
cel.Offset(0, 1).Value = "Lunch"
cel.Offset(0, 2).Value = "Lunch"
cel.Offset(0, 3).Value = "Lunch"
End If
Next cel
答案 1 :(得分:0)
如果希望保留公式,则需要更改单元格的格式而不是值。
rg.Offset(, 1).NumberFormat = "General ""LUNCH"""
答案 2 :(得分:0)
你可以嵌套另一个循环:
For i = 1 To 300
Set MyRange = Sheet1.Range("BY" & 61 + i & ":FP" & 61 + i)
For Each rg In MyRange
If InStr(1, rg.Value, "Lunch", vbTextCompare) Then
rg.Offset(, 1) = "Lunch"
rg.Offset(, 2) = "Lunch"
rg.Offset(, 3) = "Lunch"
End If
Next rg
Next i