就是下面两句蓝的,没有放到限定里面啊。放进去就好了哦。 Private Sub Worksheet_Change(ByVal Target As Range) Dim vrange As Range Set vrange = Range("B3") If Not Intersect(Target, vrange) Is Nothing Then Dim i As Single Dim J As Single J = 9 '数据起始行 y = Sheets("采购台帐").Range("c65536").End(xlUp).Row Sheets("发货申请单").Range("9:65536").ClearContents For i = 2 To y If Sheets("采购台帐").Cells(i, 3).Value = Sheets("发货申请单").Range("b3").Value Then Sheets("发货申请单").Range("B" & 4) = Sheets("采购台帐").Cells(i, 2) '供应商 Sheets("发货申请单").Range("F" & 3) = Sheets("采购台帐").Cells(i, 4) '项目 Sheets("发货申请单").Range("B" & J) = Sheets("采购台帐").Cells(i, 4) '名称 Sheets("发货申请单").Range("C" & J) = Sheets("采购台帐").Cells(i, 5) '型号 Sheets("发货申请单").Range("D" & J) = Sheets("采购台帐").Cells(i, 6) '数量 Sheets("发货申请单").Range("E" & J) = Sheets("采购台帐").Cells(i, 7) '单位 Sheets("发货申请单").Range("F" & J) = Sheets("采购台帐").Cells(i, 8) '单价 Sheets("发货申请单").Range("G" & J) = "=RC[-1]*RC[-3]" '金额 J = J + 1 End If Next i A = Sheets("发货申请单").Range("G65536").End(xlUp).Row Sheets("发货申请单").Rows(A).ClearContents End If End Sub |