При вводе кода товара в одну ячейку, как получить описание и цену для автоматического перехода в другие ячейки - PullRequest
0 голосов
/ 28 мая 2019

Возможно, это действительно простое исправление, но у меня проблемы с тем, чтобы заставить его работать. Я частый пользователь функций в Excel, но не слишком много баловался с VBA.

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

Например:
Тип «Временный провод» в A2, а «Установка временных проволочных зазоров шириной до 100 футов» автоматически заполняется в B2, а затем «650,00» автоматически заполняется в C2.

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Это просто быстрый обходной путь, о котором я подумал.Вы можете добавить столько случаев, сколько вам нужно, и через некоторое время это может стать громоздким, но это должно сработать.Вы должны ввести короткие версии в столбец A, а затем запустить макрос, чтобы назначить соответствующие длинные значения столбцу B.

Преимущество этого метода в том, что он, вероятно, будет работать немного быстрее, чем при поискезначение каждый раз, когда (определенное) значение ячейки изменяется.

Вы также можете использовать «Case Else» для обработки случайных опечаток.Другим способом повышения скорости ввода будет изменение краткого ввода на целое и ввод номера продукта вместо краткой версии названия.Даже если номера продуктов используются только вами, это сэкономит ваше время.

Sub quickType()
    Dim x As Integer
    x = 1
    Dim shortInput As String
    Dim longOutput As String
    With ThisWorkbook.Worksheets("Sheet1")
        Do While .Range("A" & x).Value <> ""
            shortInput = .Range("A" & x).Value
            Select Case shortInput
                Case "Short Text"
                    longOutput = "This is the long version of the short text."
                Case "Other Text"
                    longOutput = "This is the long version of the other text."
                Case Else
                    longOutput = "Check for a typo."
            End Select
            .Range("B" & x).Value = longOutput
        x = x + 1
        Loop
    End With
End Sub
0 голосов
/ 28 мая 2019

Ваш вопрос слишком настольный, но я приведу некоторые рекомендации:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim strSearchValue As String

    'Check if the range affected is A2 and the number of cells affected is 1
    If Not Intersect(Target, Range("A2")) Is Nothing And Target.Count = 1 Then

        'Assign to strSearchValue the value in range("A2")
        strSearchValue = Target

        'Insert more code

    End If

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