Итак, я работаю над таблицей инвентаризации, в которой в основном две большие таблицы. Одна из таблиц имеет номер детали / описание / местоположение / номер партии / количество / et c (называемый «Инвентарный список»), а другая просто имеет номер детали / описание / поставщика / общее количество (называемая «Список для заказа») ). Первая таблица в основном предназначена для отслеживания номеров партий каждого элемента, поэтому в ней имеется несколько экземпляров одного номера SKU / номера детали, а вторая таблица больше используется для отслеживания общего количества каждого элемента в целях изменения порядка, поэтому в ней будет только один экземпляр каждого элемента. номер части. Таблицы заблокированы для пользователя, и пользователь редактирует таблицу с помощью пользовательской формы для «выбора и размещения» элементов в таблице. В настоящее время кнопка выбора установлена, поэтому они выбирают из таблицы номеров лотов, и она вычтет число, из которого они вынимают или добавляют в инвентарь из этой строки, мой вопрос, как мне сопоставить номер детали, выбранный в первой таблице, с также вычесть / добавить из / к общему количеству во второй таблице? Я очень новичок в VBA, и я не уверен, возможно ли это вообще. Общим для обеих таблиц является первый столбец каждого номера детали. Я могу опубликовать текущий код, написанный для кнопок выбора / размещения ниже.
Private Sub btnPick_Click()
Dim pickValue As Integer
Dim updateQTY As Integer
Dim invQTY As Integer
Dim findMe As Long
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Inventory List")
If Selected_List = 0 Then
MsgBox "You must select an Inventory Item Prior to Pick!", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
If Me.txtPPQty.Value = "" Then
MsgBox "Please enter a quantity to pick.", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
pickValue = Me.txtPPQty.Value
invQTY = Me.lstInventory.List(Me.lstInventory.ListIndex, 7)
findMe = Selected_List + 4
If pickValue > invQTY Then
MsgBox "The pick quantity is too high! Please select a lower Value.", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
If pickValue <= invQTY Then
updateQTY = invQTY - pickValue
End If
ThisWorkbook.Sheets("Inventory List").Cells(findMe, 9) = updateQTY
MsgBox "You have removed " + CStr(pickValue) + " units from the selected item.", vbOKOnly + vbInformation, "Edit"
Dim pickValue As Integer
Dim updateQTY As Integer
Dim invQTY As Integer
Dim findMe As Long
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Inventory List")
If Selected_List = 0 Then
MsgBox "You must select an Inventory Item to Return!", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
If Me.txtPPQty.Value = "" Then
MsgBox "Please enter a quantity to Return.", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
pickValue = Me.txtPPQty.Value
invQTY = Me.lstInventory.List(Me.lstInventory.ListIndex, 7)
findMe = Selected_List + 4
If pickValue > invQTY Then
MsgBox "The pick quantity is too high! Please use Inventory Edit functions.", vbOKOnly + vbInformation, "Edit"
Exit Sub
End If
If pickValue <= invQTY Then
updateQTY = invQTY + pickValue
End If
ThisWorkbook.Sheets("Inventory List").Cells(findMe, 9) = updateQTY
MsgBox "You have added " + CStr(pickValue) + " Units to the selected Item.", vbOKOnly + vbInformation, "Edit"
End Sub