|
发表于 2015-3-9 09:15
|
显示全部楼层
本楼为最佳答案
- Private Sub Worksheet_Change(ByVal Target As Range)
- Application.EnableEvents = False
- On Error GoTo err1
- If Target = "" Then Exit Sub
- Dim Myc%, rng As Range, d, Myr&, Arr, Crr, i&, dc
- Myc = [iv1].End(xlToLeft).Column + 1
- Myr = Cells(Rows.Count, 1).End(xlUp).Row + 1
- Set rng = Union(Cells(1, 5).Resize(1, Myc - 4), Cells(8, 1).Resize(Myr - 7))
- If Intersect(rng, Target) Is Nothing Then Application.EnableEvents = True: Exit Sub
- If Target = "" Then Exit Sub
- Set d = CreateObject("Scripting.Dictionary")
- Set dc = CreateObject("Scripting.Dictionary")
- Arr = Sheet2.[a1].CurrentRegion
- For i = 1 To UBound(Arr)
- If Arr(i, 1) <> "" Then d(Arr(i, 1)) = ""
- If Arr(i, 3) <> "" Then dc(Arr(i, 3)) = ""
- Next
- If Target.Row = 1 Then
- If Not dc.exists(Target.Value) Then MsgBox "成本中心错误": Target = ""
- Else
- If Not d.exists(Target.Value) Then MsgBox "预算段错误": Target = ""
- End If
- err1:
- Application.EnableEvents = True
- End Sub
复制代码 |
评分
-
查看全部评分
|