Уважаемые VBA / Macro Experts,
У меня есть задача получить данные на основе либо штрих-кода первого столбца, либо кода SKU второго столбца. Он будет извлекать данные из мастер-листа для ДЕТАЛЕЙ ПРОДУКТА и Продажной цены, а затем отобразится окно ввода для ввода количества, а после ввода количества он рассчитает сумму путем умножения цены продажи и количества. Я создал комбинацию клавиш для выполнения кода.
Ниже прикреплена ссылка на изображение моих столбцов, и когда я нажимаю, чтобы запустить мой код, он все делает и снова начинает со строки fre sh. Но мое требование заключается в том, что, когда я нажимаю клавишу быстрого доступа, она должна перейти к столбцу, к которому должна применяться формула, в данном случае, к столбцам C и D. Я не могу найти правильный путь, где при вводе клавиши быстрого вызова она должна начинаться из столбца C и D, а курсор должен заканчиваться на в первом столбце следующего ряда. Потому что сейчас я вручную перемещаю курсор после ввода штрих-кода или кода SKU, а затем перемещаю курсор на C, чтобы применить комбинацию клавиш. Но его следует динамически применять ко всем строкам одного и того же столбца.
мой код:
Sub EasyTool()
'
' EasyTool for Platina Sales
'
' Keyboard Shortcut: Ctrl+q
'
'This will apply vlookup formula in column C and D
ActiveCell.Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK(RC[-2]),VLOOKUP(RC[-1],master_data!R1C2:R1000C3,2,FALSE),VLOOKUP(sale!RC[-2],master_data!R2C1:R1000C3,3,FALSE))"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK(RC[-3]),VLOOKUP(RC[-2],master_data!R2C2:R1000C7,6,FALSE),VLOOKUP(RC[-3],master_data!R1C1:R1000C7,7,FALSE))"
ActiveCell.Offset(0, 1).Range("A1").Select
'This is will immediatly prompt input box to enter quantity after the above operation
myValue = InputBox("Enter Quantity")
ActiveCell.Value = myValue
'This will move cursor to the next column for calculation
ActiveCell.Offset(0, 1).Range("A1").Select
'This will calculate the Value of Quantity * Selling price
myMultivalue = "=RC[-2]*RC[-1]"
ActiveCell.Value = myMultivalue
'This will move cursor to the next row, first column
ActiveCell.Offset(1, -5).Range("A1").Select
End Sub