Я строю систему управления запасами в Excel.

Каждый элемент имеет следующее:

  • Количество на складе
  • Уровень повторного заказа
  • Заказать склад?
  • Приказал?

Идея состоит в том, что когда количество <= уровень повторного заказа, «Заказ на складе?«Ячейка для этого продукта скажет" Да "и выделит красным, используя условное форматирование. Это реализовано и является простым заявлением IF. Что должно произойти, так это то, что если в этом поле отображается "Да", сотрудник может выбрать либо пустое, либо "Да" из раскрывающегося списка в упорядоченном столбце, чтобы другие сотрудники не переупорядочивали тот же продукт. Опять же, это работает.

Вопрос в том, что я хотел бы очистить Заказ? ячейка, когда пустая ячейка заказа. Это означает, что когда продукт доставляется и количество обновляется, «заказано?«Ячейка все еще не скажет да.

Я прочитал многочисленные учебники по Excel в Интернете, но ни один из них не подходит для этой проблемы. Я попытался использовать команду IF(AND(), List, ""), однако она была отклонена в Excel.

Картину можно найти здесь.

Надеюсь, это имеет смысл. Заранее спасибо.


РЕДАКТИРОВАТЬ:

Я все еще борюсь с этим. Я использовал небольшой вариант кода, предложенного в качестве ответа:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).row

' Loop through each row, I = "Reorder?" and J = ""
If Target.Column = 2 Then
    For i = 1 To oS
        ' If I is blank, set J to blank
        If Cells(i, "I").Value = "" Then
            Cells(i, "J").Value = ""
        End If
        ' If J is Yes, set I to blank
        If Cells(i, "J").Value = "Yes" Then
            Cells(i, "I").Value = ""
        End If
    Next i
End If
End Sub

Однако, когда я компилирую это и затем сохраняю книгу, это, кажется, не имеет никакого эффекта. Книгу можно найти здесь, если кто-то захочет поиграть.

1 ответ1

0

Насколько я знаю, вы не можете управлять другой ячейкой с функцией, отличной от ячейки, в которой она содержится, и вы не можете добавить функцию в ячейку с активной проверкой данных. Пожалуйста, скажите мне, если я ошибаюсь.

Таким образом, я бы использовал VBA вместо этого. И самый простой способ, который я могу придумать, заключается в следующем:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim oS As Long, i As Integer
oS = Cells(Rows.Count, "I").End(xlUp).Row
If Target.Column = 2 Then
    For i = 1 To oS
        If Cells(i, "I").Value = "" Then
            Cells(i, "J").Value = ""
        End If
    Next i
End If
End Sub

Введен в код для "биржевого" листа. Может быть, что, возможно, с какой-то модификацией будет работать для вас?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .