#excel #vba
Вопрос:
Sub HighlightAndHalve()
'This sub will highlight the cells which are above the threshold and also, halve the reductions based on this same condition
Dim cell As Range, rng As Range, A As Range, LastRow As Long
Set Sa = ThisWorkbook.Worksheets("Sales Data")
LastRow = Cells(Rows.Count, "Q").End(xlUp).Row
Set rng = Sheets("Sales Output").Range("Q6:Q" amp; LastRow)
For Each cell In rng
Set P = cell.Offset(0, -1)
Set O = cell.Offset(0, -2)
Set N = cell.Offset(0, -3)
If cell.Value > 3 Then
P.Value = P.Value / 2
P.Interior.ColorIndex = 3
O.Value = (N.Value P.Value)
End If
Next cell
End Sub
По сути, в столбце Q у меня есть список наблюдателей за каждым товаром (коллекционные кроссовки). Если у них более 3 наблюдателей, то сокращение (столбец P) уменьшается вдвое. O — новая цена, N — первоначальная. Итак, в тех случаях, когда количество наблюдателей превышает 3, я хочу добавить N к P.
Понятия не имею, почему я получаю ошибки. Все ячейки заданы как общие.
Комментарии:
1. Где именно вы получаете такую ошибку несоответствия типов?
2. Значение O. = (Значение N. Значение P.)
3.
LastRow
рассчитывается для активного листа. Чтобы быть уверенным, что он рассчитан для нужного вам листа, вы должны полностью квалифицировать лист.LastRow = Sheets("Sales Output").Cells(Rows.Count, "Q").End(xlUp).Row
. При остановке по ошибке наведите курсор на соответствующие ячейки (N.Value P.Value
). Является ли одна из них нитью?4. Таким образом, значение N. или значение P., вероятно, имеют разные типы. Вы проверили их значения и типы?
5. Нет…то же самое. Когда я добавляю опцию явно и определяю N, P и O как диапазон, это работает. Понятия не имею, почему . Наверное, это был вопрос с декларацией, и это его смутило?