Excel VBA - изменить значение ячейки через другую ячейку? - PullRequest
0 голосов
/ 11 октября 2018

Так что VBA для меня совершенно новый.Я пришел из C # фона.В настоящее время создается форма заказа, в которой я могу ввести общую сумму, которая мне требуется для объекта, и затем цена рассчитывается в другой ячейке.

Однако я также хочу, чтобы цена изменялась в зависимости от пороговых значений количества для этого объекта..

Скажем, например, 0 - 100 будет стоить £ 2,50, поэтому я ожидаю, что ответ в любом месте этого диапазона умножится на 2,50.Между тем, если сумма превышает 100 и становится 120, я хочу, чтобы цена объекта теперь отражала £ 2,30 и умножалась на 120 на £ 2,30.

Я заметил несколько обучающих программ в сети, но они не совсемобъясните, как я мог бы достичь вышеизложенного.Хотите знать, если кто-нибудь может указать мне в правильном направлении?

1 Ответ

0 голосов
/ 11 октября 2018

Non VBA Soluion

Если вы строите таблицу с нижним и верхним порогами для цены, вы можете просто использовать VLOOKUP и возвращать приблизительное совпадение.

На фотографии Column C является выводом уравнения, показанного в Column D

enter image description here


VBAРешение

Вы также можете использовать простое UDF.Вставьте код в Module, и затем вы можете вызвать функцию PRICEINDX из ячейки, как и любое другое уравнение.Вы можете вручную ввести значение, например PRICEINDX(164), или выбрать ячейку, значение которой должно быть проверено, например, PRICEINDX(A1)

. Вы также можете легко установить более сложные пороги, используя Select Case

.
Option Explicit

Public Function PRICEINDX(Target As Double) As Double

Dim ans As Double

Select Case Target
    Case 0 To 100
        ans = 2.5
    Case 101 To 200
        ans = 2.3
    Case 201 To 300
        ans = 2.1
    Case Is > 300
        ans = 2
End Select

PRICEINDX = ans

End Function
...