再改下 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo 100 If Target.Row < 3 Or Target.Column <> 3 Then Exit Sub If Target.Value = "" Or Cells(Target.Row, 2).Value = "" Then Exit Sub Application.ScreenUpdating = False Dim x%, MyXL As Object, y$ Set MyXL = GetObject("" & ThisWorkbook.Path & "\定额库.xls" & "") y = Cells(Target.Row, 2) x = MyXL.Sheets("" & y & "").Range("a:a").Find(Cells(Target.Row, 3).Value).Row Range("d" & Target.Row) = MyXL.Sheets("" & y & "").Range("b" & x).Value Range("e" & Target.Row) = MyXL.Sheets("" & y & "").Range("c" & x).Value Set MyXL = Nothing 100: Application.ScreenUpdating = True End Sub
|