- ©«¤l
- 1447
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1471
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2024-12-5
|
¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-3-31 11:20 ½s¿è
¦^´_ 8# coafort
ÁÂÁ«e½ú¦^´_
«á¾ÇÂǦ¹©«½m²ßIJµo»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò
°õ¦æ«e:
¿é¤J8ªº°õ¦æµ²ªG:
'¤u§@ªí¼Ò²Õ:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
On Error Resume Next
Names("_AAA").Delete
On Error GoTo 0
If .Row < 3 Or .Value = "" Then Exit Sub
If .Column Mod 7 <> 1 Then Exit Sub
Cancel = True
Names.Add "_AAA", Target.Value
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Row < 3 Or .Count > 1 Then Exit Sub
If .Column Mod 7 = 4 Then
Call ¶ñ¤J°t®§_¦hÓ¦PªÑ¦W
If Val(Y(.Offset(0, -3) & "|")) > 1 Then
Application.EnableEvents = False
Y(.Offset(0, -3) & "/").Value = .Value
Application.EnableEvents = True
Application.Goto Y(.Offset(0, -3) & "/")
Set Y = Nothing
End If
End If
If .Column Mod 7 = 6 Then
Call ¶ñ¤J°tªÑ_¦hÓ¦PªÑ¦W
If Val(Y(.Offset(0, -5) & "|")) > 1 Then
Application.EnableEvents = False
Y(.Offset(0, -5) & "/").Value = .Value
Application.EnableEvents = True
Application.Goto Y(.Offset(0, -5) & "/")
Set Y = Nothing
End If
End If
End With
End Sub
'Module1:
Option Explicit
Public Y
Sub ¶ñ¤J°t®§_¦hÓ¦PªÑ¦W()
Dim Brr, C&, i&, R&
Set Y = CreateObject("Scripting.Dictionary")
Brr = ActiveSheet.UsedRange
For C = 1 To UBound(Brr, 2) Step 7
For R = 3 To UBound(Brr)
Y(Brr(R, C) & "|") = Y(Brr(R, C) & "|") + 1
If Y(Brr(R, C) & "/") = "" Then
Set Y(Brr(R, C) & "/") = Cells(R, C + 3)
Else
Set Y(Brr(R, C) & "/") = Union(Y(Brr(R, C) & "/"), Cells(R, C + 3))
End If
Next
Next
End Sub
Sub ¶ñ¤J°tªÑ_¦hÓ¦PªÑ¦W()
Dim Brr, C&, i&, R&
Set Y = CreateObject("Scripting.Dictionary")
Brr = ActiveSheet.UsedRange
For C = 1 To UBound(Brr, 2) Step 7
For R = 3 To UBound(Brr)
Y(Brr(R, C) & "|") = Y(Brr(R, C) & "|") + 1
If Y(Brr(R, C) & "/") = "" Then
Set Y(Brr(R, C) & "/") = Cells(R, C + 5)
Else
Set Y(Brr(R, C) & "/") = Union(Y(Brr(R, C) & "/"), Cells(R, C + 5))
End If
Next
Next
End Sub |
|