如何自动更新Excel工作簿中的多个工作表?

我有两个工作表的Excel工作簿 – “即将下单”和“已完成的订单”。 我使用了即将下单的“未来订单”表格,完成订单的“已完成订单”。

一旦订单完成,我将其从“即将下单”表中删除,并将其粘贴到“已完成订单”中。

有没有一种方法可以通过创build一个自动为我自动完成的macros来进行自动化,一旦我在“未来订单”工作表中完成订单标记,它就会自动添加到“已完成订单”工作表中。

我在macros上的几个教程,但我找不到正确的方法。 请帮忙。

如何双击,通过双击单个单元格,您可以将行复制到“完成的订单”工作表,并从“即将到来的订单”

示例Workbook.SheetBeforeDoubleClick事件(Excel)

 Option Explicit Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sht As Object, _ ByVal Target As Range, _ Cancel As Boolean) Dim LastRow As Long Dim RngCopy As Range Dim Target_Sht As Worksheet Cancel = True Set Target_Sht = Sheets("Completed Orders") Set RngCopy = Sht.Range("A" & Target.Row, Sht.Cells _ (Target.Row, Sht.UsedRange.Column + _ Sht.UsedRange.Columns.Count).Address) With Target_Sht LastRow = .Cells(Rows.Count, "A").End(xlUp).Row + 1 RngCopy.Copy Destination:=.Range("A" & LastRow) Sht.Rows(Target.Row).Delete End With End Sub 

在这里输入图像描述

我是这个网站的新手,所以这是我的第一个“答案”,我也是新的VBA编码,但我很难xD

我只是做了一个macros,打开一个“input框”input销售ID#,“确定”,然后将其从“即将到来的订单”表中的位置移动到第二张表上“完成的订单”表的第一行。 ..我认为这是很好的,因为它允许你通过不得不实际inputID#来validation你正在传输的数据。 也使得更长的表更容易,因为您不必search条目。 (明天我会试着做一个返回logging到“即将到来”的页面…如果有错误发生的话 – 祝你好运(.Reverus。)

 Sub Record_Transfer() Dim Rcrd, Rcrd2, Rng, tbl1, Tbl2 As Range Dim IDnum As String Dim x, x2, y, n As Integer Worksheets(1).Activate Set tbl1 = ActiveSheet.ListObjects("Table1") IDnum = InputBox("Input ID to transfer: ", ["Transfer"], 17) If vbOKCancel = vbCancel Then Exit Sub End If If vbOKCancel = vbOK Then Set Rng = ActiveSheet.ListObjects("Table1").ListColumns(1).Range Set Rcrd = Rng.Find(IDnum, LookIn:=xlValues) End If If Rcrd Is Nothing Then MsgBox "ID not found." Exit Sub End If y = Rcrd.Row Set Rcrd = Worksheets(1).Range(Rcrd, Rcrd.End(xlToRight)) x2 = ActiveSheet.ListObjects("Table1").ListColumns.Count Worksheets(2).Activate ActiveSheet.ListObjects("Table2").ListRows.Add (1) Set Rcrd2 = ActiveSheet.ListObjects("Table2").ListRows(1).Range For x = 1 To x2 Rcrd2.Cells(x).Value = Rcrd.Cells(x).Value If x > x2 Then GoTo Del Next x Del: Sheets("Sheet1").Activate ActiveSheet.Rows(y).Delete End Sub