我有一个包含两个工作表的Excel工作簿 - "即将到来的订单"和"完成订单"。我使用了"即将到来的订单"即将到来的订单表,以及"已完成的订单"完成订单。
订单完成后,我会从"即将到来的订单"将其粘贴并粘贴到"完成订单"。
有没有办法通过创建一个宏来自动化它,一旦我在"即将到来的订单"表格会自动添加到"完成订单"片。
我在宏上学了一些教程,但我找不到合适的方法。请帮忙。
答案 0 :(得分:0)
如何双击,双击单个单元格,您可以将行复制到"完成订单"选择并从"即将到来的订单"
中删除它示例Workbook.SheetBeforeDoubleClick Event (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
答案 1 :(得分:0)
我是这个网站的新手,所以这是我的第一个回答" 我也是VBA编码的新手,但是我很难用xD
我只是创建了一个打开"输入框"输入销售ID#," OK"然后将其从"即将到来的订单"中的位置移开表格到"完成订单"的第一行第二张表上的表...我认为这很好,因为它允许您通过实际输入ID#来验证您要传输的数据;因为您不必搜索条目,所以也可以使更长的表更容易。 (明天我将尝试制作一个将记录返回到"即将到来的"页面......以防出现错误。 -请享用! (.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