Я создал две командные кнопки для инструкции на каждом листе, но вторая не работает, я думаю, что это может быть проблема с диапазоном, но пробовал несколько вещей, и она не работает.
Это простой лист продаж (Sheet1) и лист запасов (StockData). Я поместил часть данных о продажах в складской лист, и все это работает, но когда я обновляю информацию, вторая командная кнопка для обновления информации в складском листе не работает. Я занимаюсь этим уже несколько дней и постарался, насколько я понимаю, из предложений в Интернете.
Private Sub cmdAdd_Click()
If txtLine.Text = "" Or cmbWHS.Text = "" Or cmbStatus.Text = "" Then
If MsgBox("Check Line or Warehouse or Status", vbCritical, "ERROR") = vbOK Then
Exit Sub
End If
End If
'to check the last filled row
lastrow = ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Worksheets("Sheet1").Cells(lastrow + 1, 1).Value = txtInvoiceNumber.Text
ThisWorkbook.Worksheets("Sheet1").Cells(lastrow + 1, 2).Value = txtLineNumber.Text
ThisWorkbook.Worksheets("Sheet1").Cells(lastrow + 1, 3).Value = txtInvoiceDate.Text
Private Sub cmdSaleStockIn_Click()
'to check the last filled row
lastrow = ThisWorkbook.Worksheets("StockData").Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Worksheets("StockData").Cells(lastrow + 1, 1).Value = txtStockSaleNo.Text
ThisWorkbook.Worksheets("StockData").Cells(lastrow + 1, 2).Value = txtLineNumber.Text
ThisWorkbook.Worksheets("StockData").Cells(lastrow + 1, 3).Value = txtTransactionCdS.Text
'Они работают, но обновление не хочет быть таким простым ...
Я сделал поиск, и он снова помещает все данные в пользовательскую форму
Private Sub cmdFind_Click()
Dim totalrow As Long
totalrow = Sheet1.Range("A1").CurrentRegion.Rows.Count
For currentrow = 2 To totalrow
If Trim(txtLineNumber) = Trim(Cells(currentrow, 2)) Then
txtInvoiceNumber.Text = Cells(currentrow, 1)
txtInvoiceDate.Text = Cells(currentrow, 3)
'Этот код работает
Private Sub cmdUpdate_Click()
Dim totalrow As Long
totalrow = Sheet1.Range("A1").CurrentRegion.Rows.Count
For currentrow = 2 To totalrow
If Trim(txtLineNumber) = Trim(Cells(currentrow, 2)) Then
Cells(currentrow, 1) = txtInvoiceNumber.Text
Cells(currentrow, 3) = txtInvoiceDate.Text
Cells(currentrow, 4) = cmbCustomerName.Text
... и т.д.
'так почему не этот?
Private Sub cmdUpdStock_Click()
Dim totalrow As Long
totalrow = StockData.Range("A1").CurrentRegion.Rows.Count
For currentrow = 2 To totalrow
If Trim(txtLineNumber) = Trim(Cells(currentrow, 2)) Then
Cells(currentrow, 5) = txtInvoiceDate.Text
Cells(currentrow, 7) = cmbWHS.Text