0

6000 行と 300 列を超えるスプレッドシートがあります。列内のセルを読み取ることができるようにするコードをvbaで記述する方法を知る必要があります。「いいえ」と言った場合、その右側にある3つのセルをゼロに設定します。デバッグ時にエラーはありませんが、エラーは cell.Offset 行にあります。考え?

前もって感謝します

Sub Macro1()

Dim rng As Range
Dim cell As Object

 With Sheets("Sheet1")
    Set rng = .Range("C1:C6000")
    For Each cell In rng
        If cell.Value = "no" Then
            cell.Offset(0, 1).Value = 0
            Exit For
        End If
    Next
 End With
End Sub
4

2 に答える 2

0

chuff のコードを借りる:

Sub SetTo0IfNo()
    Dim rng As Range
    Dim lastRow As Long
    Dim cell As Range

    With Sheets("Sheet1")
        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        Set rng = .Range("A1:A" & lastRow)
        For Each cell In rng
            If cell.Value = "no" Then
                'cell.Offset(0, 3).Value = 0
                cell.Range("B1:D1").Value = 0
            End If
        Next
    End With
End Sub
于 2013-07-10T22:43:31.867 に答える