Как я могу сделать эту формулу динамичной - PullRequest
0 голосов
/ 26 июня 2018

В таблице у меня есть пять столбцов со следующими заголовками

  • «Код товара» в ячейке B3
  • «Описание продукта» в ячейке C3
  • «Десятки на ящик» в камере D3
  • «Дела на поддон» в ячейке E3
  • «UOM» в ячейке F3 (что означает единицу измерения)

В моей пользовательской форме у меня есть поле со списком, из которого пользователь будет выбирать продукт, командная кнопка и текстовое поле. Значения этого поля со списком заполняются из столбца Код продукта электронной таблицы.

Как только пользователь выберет продукт из поля со списком и введет значение в текстовое поле (называемое «txtbxdz») и нажмет командную кнопку, будет выполнена формула.

В настоящее время значения жестко запрограммированы в программе, как показано в формуле ниже.

Private Sub cmdbtnPrint_Click()

    Dim textValUp As Long
    Dim textValDown As Long
    Dim txtUOM As String
    Dim txtCs As Long
    Dim txtDz As Long        

        Case Is = "4120-5-01 (ALLERGY 180MG 5CT)"
            txtDz = 2
            txtCs = 200
            txtUOM = "DZ"
    End Select

    textValUp = ((txtbxdz.Value) / txtDz / txtCs) + 0.5 - 1E-16
    textValDown = ((txtbxdz.Value) / txtDz / txtCs) - 0.5 + 1E-16

End Sub

1 Ответ

0 голосов
/ 27 июня 2018

Да, если я правильно понимаю ваш ответ. Если я правильно помню, что VLookup делает подобное. Позвольте мне привести пример. Если пользователь выбирает 4120-5-01 (Allergy 180mg 5ct) из поля со списком, неизвестная строка кода на этом этапе будет циклически перебирать описание продукта, пока код не найдет продукт, тогда я предполагаю смещения для столбца, который содержит значения, соответствующие этому продукту, и присваивает это значение соответствующей переменной. Так что, если название продукта находится в ячейке C3 Код сместится на 1 вправо получить значение «Десятки на случай» в ячейке D3 и назначить его для txtDz и снова сместить его на 1 и присвоить значение в E3 для txtCs и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...