Этот ответ только идет от вашего описания того, что вы делаете, не видя вашей рабочей тетради. Это отправная точка для вас. Сделайте резервные копии вашего файла, прежде чем пытаться это сделать.
На втором листе создайте кнопку справа от последнего столбца на вкладке Разработчик. Если вкладка разработчика недоступна, перейдите сюда, чтобы узнать, как сделать ее видимой.
Щелкните правой кнопкой мыши и выберите « View Code
. Откроется окно, и вы увидите что-то подобное на правой панели.
Между двумя строками вставьте следующий код.
Dim intCount As Integer
Dim lRow As Long
Dim LastRow As Long
Dim strPart As String
'Find last row in the log
LastRow = Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, "A").End(xlUp).Row
'Get the part number and amount taken from the last row
strPart = Worksheets("Sheet2").Range("A" & LastRow).Value
intCount = Worksheets("Sheet2").Range("B" & LastRow).Value
'Look for a match in the first sheet
lRow = Application.WorksheetFunction.Match(strPart, Worksheets("Sheet1").Range("A:A"), 0)
'Subtract the amount from the count
intCount = Worksheets("Sheet1").Range("H" & lRow).Value - intCount
Worksheets("Sheet1").Range("H" & lRow).Value = intCount
После того, как вы вставили его, вам нужно будет изменить имена листов, если у вас не указаны значения Sheet1
и Sheet2
по умолчанию. Sheet1 - это место, где находится ваш инвентарный список. Sheet2 - это журнал, который забирает из инвентаря.
Закройте окно VBA, щелкните правой кнопкой мыши и выберите « Properties
. Измените заголовок на "Рассчитать", или что-то еще описательное, и закройте. НЕ меняйте (name)
вверху, иначе ваша кнопка не будет работать.
Нажмите « Design Mode
в меню, чтобы активировать кнопку.
Если при обращении к первому столбцу и второму столбцу вы имели в виду столбцы A
и B
, это позволит найти номер детали в последней строке журнала, затем сопоставить его с номером детали на другом листе, а затем вычесть принятую сумму. из инвентаря.
Он рассчитывает только последний ряд. Это не будет делать какие-либо предыдущие строки. Итак, если уже есть строки или вы забыли нажать кнопку после ввода данных, они будут пропущены. С другой стороны, если вы нажмете кнопку более одного раза, она будет вычитаться столько раз, сколько вы нажмете кнопку.
Это должно привести вас в правильном направлении. Кроме того, вы можете сделать это с помощью кнопки на ленте, а не на листе.