Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找一个excel工作表(采购订单生成器)上与另一个excel工作表上的记录匹配的记录。(采购订单日志)复印件及;将行粘贴到采购订单日志_Excel_Vba - Fatal编程技术网

查找一个excel工作表(采购订单生成器)上与另一个excel工作表上的记录匹配的记录。(采购订单日志)复印件及;将行粘贴到采购订单日志

查找一个excel工作表(采购订单生成器)上与另一个excel工作表上的记录匹配的记录。(采购订单日志)复印件及;将行粘贴到采购订单日志,excel,vba,Excel,Vba,到目前为止,我的代码。。。。在采购订单生成器上获取原始订单,并将其复制到采购订单日志中,只要是新订单即可。当我需要更新以前的订单时,我的问题就出现了。我希望它能找到原始订单并更新ref单元格。请帮忙。。。。Excel 2003 Sub Get_Po() ' ' Get_Po Macro Dim ws1 As Worksheet Dim ws2 As Worksheet Dim dest As Range Set ws1 = Sheets("PO GENERATOR") Set ws2 = Sh

到目前为止,我的代码。。。。在采购订单生成器上获取原始订单,并将其复制到采购订单日志中,只要是新订单即可。当我需要更新以前的订单时,我的问题就出现了。我希望它能找到原始订单并更新ref单元格。请帮忙。。。。Excel 2003

Sub Get_Po()
'
' Get_Po Macro
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim dest As Range

Set ws1 = Sheets("PO GENERATOR")
Set ws2 = Sheets("PO LOG")
Set dest = ws2.Range("a1").End(xlDown).Offset(1)


Sheets("PO GENERATOR").Select
Selection.AutoFilter Field:=3, Criteria1:="<>"
ws1.Range("2:5135").Copy
dest.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Type II Log").Select


End Sub 
Sub Get_Po()
'
'Get_Po宏
将ws1设置为工作表
将ws2设置为工作表
变暗目的地范围
设置ws1=工作表(“采购订单生成器”)
设置ws2=工作表(“采购订单日志”)
Set dest=ws2.范围(“a1”).结束(xlDown).偏移量(1)
工作表(“采购订单生成器”)。选择
Selection.AutoFilter字段:=3,标准1:=“”
ws1.范围(“2:5135”).副本
dest.paste特殊XLPaste值
Application.CutCopyMode=False
工作表(“II型日志”)。选择
端接头

以下是一些应该有效的代码。我已经测试过了,它符合你的要求。需要注意的几个关键点是。采购订单生成器的起始行和起始列,以及采购订单日志信息的起始行和起始列

    Dim a As String
Dim lastRow As String

lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
'   Variable for PO#
a = Sheets("PO GENERATOR").Range("A1").Value

Sheets("PO GENERATOR").Select
'   Adjust to whatever row your PO is located
Rows(1).Select
Selection.Copy
Sheets("PO LOG").Select

'   Modify the Columns(1) to whatever column number your PO# is located
'   Search For PO number
Dim cellrow As Integer
    On Error Resume Next
    rng1 = a
    strSearch = rng1
        Set aCell = Sheets("PO LOG").Columns(1).Find(What:=strSearch, LookIn:=xlValues, _
                                    LookAt:=xlWhole, SearchOrder:=xlByRows, _
                                    SearchDirection:=xlNext, MatchCase:=False, _
                                    SearchFormat:=False)

        MsgBox aCell & vbCrLf & aCell.Row
        cellrow = aCell.Row

'   Modify Range("A") to whatever column you PO is located
If cellrow = 0 Then
Range("A" & lastRow).Select
Selection.PasteSpecial
    Else:
        Rows(cellrow).EntireRow.Select
        Selection.PasteSpecial
End If

祝你好运

ms Access是一个选项吗?它的设计就是为了轻松处理这种情况。蜘蛛~不幸的是,它不是……丹尼。。。这有用吗?