返回列表 上一主題 發帖

關於VBA

回復 1# sheau-lan


    在SHEET1貼上試試
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. On Error GoTo 99
  3. Dim TG As Range
  4. With Target
  5. If .Row >= 3 And .Column = 1 Then
  6.      If .Value = "" Then
  7.          .Offset(0, 2) = ""
  8.          .Offset(0, 3) = ""
  9.          .Offset(0, 5) = ""
  10.          .Offset(0, 6) = ""
  11.   
  12. Else: Set TG = Sheet3.[H3:H9999].Find("*" & .Value & "*", , , xlWhole)
  13.          .Offset(0, 2) = TG.Offset(0, -6).Value
  14.        TG2 = .Offset(0, 2).Value
  15.          .Offset(0, 3) = TG.Offset(0, -3).Value
  16.          .Offset(0, 5) = Application.VLookup(TG2, Sheet2.[A4:E9999], 5, False)
  17.          .Offset(0, 6) = TG.Offset(0, 1).Value
  18.      End If
  19.   End If
  20. End With
  21. 99
  22. End Sub
複製代碼

TOP

回復 4# sheau-lan

     這樣呢?
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. On Error GoTo 99
  3. Dim TG As Range
  4. With Target
  5. If .Row >= 3 And .Column = 1 Then
  6.      If .Value = "" Then
  7. 98:    .Offset(0, 2) = ""
  8.          .Offset(0, 3) = ""
  9.          .Offset(0, 5) = ""
  10.          .Offset(0, 6) = ""
  11.   
  12.   Else: Set TG = Sheet3.[H3:H9999].Find("*" & .Value & "*", , , xlWhole)
  13.              If TG Is Nothing Then GoTo 98
  14.                 .Offset(0, 2) = TG.Offset(0, -6).Value
  15.                TG2 = .Offset(0, 2).Value
  16.                 .Offset(0, 3) = TG.Offset(0, -3).Value
  17.                 .Offset(0, 5) = Application.VLookup(TG2, Sheet2.[A4:E9999], 5, False)
  18.                      If IsError(.Offset(0, 5).Value) Then .Offset(0, 5) = ""
  19.                 .Offset(0, 6) = TG.Offset(0, 1).Value
  20.              End If
  21.   End If
  22. End With
  23. 99
  24. End Sub
複製代碼

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題