0

到目前为止,我拥有的代码....获取 PO 生成器上的原始订单并将其复制到 PO 日志中,只要它们是新订单就可以了。当我需要更新以前的订单时,我的问题就出现了。我希望它找到原始订单并更新参考单元格。请帮助.... 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 
4

1 回答 1

0

这是一些应该可以工作的代码。我已经对其进行了测试,它可以满足您的需求。需要注意的几个关键点是。您的 PO 生成器从哪一行和哪一列开始,以及您的 PO 日志信息从哪一行和哪一列开始。

    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

祝你好运!!!

于 2012-11-29T21:29:38.413 回答