#excel #vba
#excel #vba
Вопрос:
Я пытаюсь заполнить значения столбца C на своем листе на основе значения в столбце A. Итак, если значение столбца A равно 1, то я хочу, чтобы значение в соответствующей ячейке в столбце C было равно 10, иначе ничего не делайте.
Sub test()
For Each cell In Sheets("Report").Range("A9:A" amp; LastRow)
If cell.Value = 1 Then
cell.Offset(0, 2).Value = 10
End If
Next cell
End Sub
Был бы признателен за любую помощь и покажите мне лучший способ, если есть.
Спасибо
Комментарии:
1. С какой проблемой вы столкнулись? Вы не определяете
LastRow
. Также определитеcell
какRange
.2. Я получаю «Ошибка времени выполнения ‘1004’: ошибка, определенная приложением или объектом»
Ответ №1:
Попробуйте ниже.
Sub test()
Dim sh As Worksheet
Dim cel As Range
Dim LastRow As Long
Set sh = ThisWorkbook.Worksheets("Report")
LastRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row
For Each cel In sh.Range("A9:A" amp; LastRow)
If cel.Value = 1 Then
cel.Offset(0, 2).Value = 10
End If
Next cel
Set sh = Nothing
End Sub
Комментарии:
1. Хотя могу я спросить, почему вы использовали это «Set sh = Nothing»?
2.
Set sh = Nothing
строка очищает память.