ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¥N½X­×¥¿

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2024-1-15 10:11 ½s¿è

¦^´_ 1# wayne0303


    ÁÂÁ«e½úµoªí¦¹¥DÃD
µ{§Ç°õ¦æ¥i¥H¥Î,¥i¥H¥¿½T°õ¦æ³Ì­«­n,¦pªG¯à©ú½T«ü¥X°ÝÃDÄpµ²©Î¤W¶Ç½d¨Ò,¤ñ¸û®e©ö²z¸Ñ»Ý¨D
«e½ú´£¨Ñ½d¨Ò²z¸Ñ¦p¤U:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'¡ôÀx¦s®æ¤º®e§ïÅܪºÄ²µo¨Æ¥ó
Dim xA As Range, xR As Range
'¡ô«Å§iÅܼÆ
Application.ScreenUpdating = False
'¡ô¿Ã¹õ¼È¤£ÀHµ{§Ç§ïÅܵ²ªG
Set xA = Intersect(Target, Range("U:U"))
'¡ô¥OxAÅܼƬOIJµo®æ»PUÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then GoTo xA0
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´N¸õ¨ì¼Ð¥ÜxA0¦ì¸mÄ~Äò°õ¦æ
For Each xR In xA
'¡ô³]³v¶µ°j°é!¥OxRÅܼƬOxA³o¥æ¶°®æªº¤@®æ
    Range(Cells(xR.Row, 1), Cells(xR.Row, 22)).Font.ColorIndex = 15 ^ -(xR > 1)
    '¡ô¥OÀx¦s®æ¤å¦rÃC¦â¬O¦Ç¦â©Î¶Â¦â
    'Àx¦s®æ:xR·í¦CAÄæ¨ìVÄ椧¶¡ªº³sÄòÀx¦s®æ

Next

xA0:
Set xA = Intersect(Target, Range("O:O"))
'¡ô¥OxAÅܼƬOIJµo®æ»POÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then GoTo xA1
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´N¸õ¨ì¼Ð¥ÜxA1¦ì¸mÄ~Äò°õ¦æ
For Each xR In xA
'¡ô³]³v¶µ°j°é!¥OxRÅܼƬOxA³o¥æ¶°®æªº¤@®æ
    Range(Cells(xR.Row, 16), xR).Font.ColorIndex = 2 ^ -(xR = "")
    '¡ô¥OÀx¦s®æ¤å¦rÃC¦â¬O¥Õ¦â©Î¶Â¦â
    'Àx¦s®æ:xR·í¦COÄæ¨ìPÄ椧¶¡ªº³sÄòÀx¦s®æ

Next

xA1:
Set xA = Intersect(Target, Range("J:J"))
'¡ô¥OxAÅܼƬOIJµo®æ»PJÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then GoTo xA2
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´N¸õ¨ì¼Ð¥ÜxA2¦ì¸mÄ~Äò°õ¦æ
For Each xR In xA
'¡ô³]³v¶µ°j°é!¥OxRÅܼƬOxA³o¥æ¶°®æªº¤@®æ
    Range(Cells(xR.Row, 10), xR).Font.Color = RGB(0, 176, 240) ^ -(xR = "L")
    Range(Cells(xR.Row, 10), xR).Font.Bold = (xR = "L")
    '¡ô¥OÀx¦s®æ¤å¦rÃC¦â¬O²LÂŦâ©Î¶Â¦â,¥OÀx¦s®æ¤å¦r¬O²ÊÅé©Î«D²ÊÅé
    'Àx¦s®æ:xR·í¦CJÄæÀx¦s®æ

Next

xA2:
Set xA = Intersect(Target, Range("v:v"))
'¡ô¥OxAÅܼƬOIJµo®æ»PVÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then GoTo xA3
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´N¸õ¨ì¼Ð¥ÜxA3¦ì¸mÄ~Äò°õ¦æ
For Each xR In xA
'¡ô³]³v¶µ°j°é!¥OxRÅܼƬOxA³o¥æ¶°®æªº¤@®æ
    Range(Cells(xR.Row, 1), xR).Font.Color = RGB(153, 102, 0) ^ -((xR Like "*©î¹Ï"))
    '¡ô¥OÀx¦s®æ¤å¦rÃC¦â¬O¤g¦â©Î¶Â¦â
    'Àx¦s®æ:xR·í¦CAÄæ¨ìVÄ椧¶¡ªº³sÄòÀx¦s®æ

Next

xA3:
Set xA = Intersect(Target, Range("p:p"))
'¡ô¥OxAÅܼƬOIJµo®æ»PPÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then GoTo xA4
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´N¸õ¨ì¼Ð¥ÜxA4¦ì¸mÄ~Äò°õ¦æ
For Each xR In xA
'¡ô³]³v¶µ°j°é!¥OxRÅܼƬOxA³o¥æ¶°®æªº¤@®æ
    Range(Cells(xR.Row, 1), Cells(xR.Row, 22)).Font.ColorIndex = 5 ^ -(xR.Font.Strikethrough = True)
    '¡ô¥OÀx¦s®æ¤å¦rÃC¦â¬OÂŦâ©Î¶Â¦â
    'Àx¦s®æ:xR·í¦CAÄæ¨ìVÄ椧¶¡ªº³sÄòÀx¦s®æ

Next

xA4:
Set xA = Intersect(Target, Range("E:E"))
'¡ô¥OxAÅܼƬOIJµo®æ»PEÄ檺¥æ¶°Àx¦s®æ
If xA Is Nothing Then Exit Sub
'¡ô¦pªGxAÅܼƨS¥æ¶°¨ì¥ô¦óÀx¦s®æ!´Nµ²§ôµ{¦¡°õ¦æ
Dim st As String
Dim cell As Range
'¡ô«Å§iÅܼÆ

For Each cell In Me.Range("E2:E" & Me.Cells(Me.Rows.Count, "E").End(3).Row)
'¡ô³]³v¶µ°j°é!¥OcellÅܼƬO¥»ªíEÄæ¸ÌªºÀx¦s®æ
    st = IIf(cell.Value = "", "", _
                IIf(cell.Offset(0, -1).Value > 0, "LOB", _
                    IIf(Application.WorksheetFunction.CountIf(cell, "S1A*") > 0, "TM", "MU")))
    '¡ô¥OstÅܼƬOIIf()¦^¶Ç­È
    cell.Offset(0, -3).Value = st
    '¡ô¥OcellÅܼƥª3®æÀx¦s®æ­È¬OstÅܼÆ
Next
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

ÁÂÁ½׾Â,ÁÂÁ¦U¦ì«e½ú
«á¾Ç½m²ß¤è®×¦p¤U,½Ð¦U¦ì«e½ú«ü±Ð
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xR As Range, st$, cell As Range
Application.ScreenUpdating = False
With Target
   If .Column = 21 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.ColorIndex = 15 ^ -(Val(xR) > 1)
      Next
   End If
   If .Column = 15 Then
      For Each xR In .Cells
         Cells(xR.Row, 16).Resize(, 2).Font.ColorIndex = 2 ^ -(Trim(xR) = "")
      Next
   End If
   If .Column = 10 Then
      For Each xR In .Cells
         Cells(xR.Row, 10).Font.Color = RGB(0, 176, 240) ^ -(Trim(xR) = "L")
         Cells(xR.Row, 10).Font.Bold = (Trim(xR) = "L")
      Next
   End If
   If .Column = 22 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.Color = RGB(153, 102, 0) ^ -((xR Like "*©î¹Ï"))
      Next
   End If
   If .Column = 16 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.ColorIndex = 5 ^ -(xR.Font.Strikethrough = True)
      Next
   End If
   If .Column <> 5 Then Exit Sub
   For Each cell In Me.Range("E2:E" & Me.Cells(Me.Rows.Count, "E").End(3).Row)
      st = IIf(Trim(cell) = "", "", IIf(Val(cell.Offset(0, -1)) > 0, "LOB", _
                    IIf(Application.WorksheetFunction.CountIf(cell, "S1A*") > 0, "TM", "MU")))
      Application.EnableEvents = False
      cell.Offset(0, -3).Value = st
      Application.EnableEvents = True
   Next
End With
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 4# wayne0303


    ¥i¯à¬O³sÄòIJµo,½Ð¸Õ¸Õ3#ªº¤è®×
      Application.EnableEvents = False
      cell.Offset(0, -3).Value = st
      Application.EnableEvents = True
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 6# wayne0303


For Each cell In Union(Me.Range("E2:E" & Me.Cells(Me.Rows.Count, "E").End(3).Row), .Cells)
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 8# wayne0303


    §Ú´ú¸Õ¨S°ÝÃD,¦AÀˬd¤@¤U©Î§ó©ú½T»¡©ú/¹Ï¸Ñ/¤W¶Ç½d¨Ò
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 10# wayne0303


¥i¯à¬O³sÄòIJµo,¥i¥H¥Î¥H¤U¤è¦¡¸Õ¸Õ¬Ý
Application.EnableEvents = False
'·|²£¥Í³sÄòIJµoªº¦ì¸m,¨Ò¦p cell.Offset(0, -3).Value = st
Application.EnableEvents = True
IJµo¦¸¼Æ:


¥H¤U¬O´ú¸ÕIJµo¦¸¼Æªº¥N½X
Option Explicit
Dim N&
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xR As Range, st$, cell As Range
With Target
   If .Column = 21 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.ColorIndex = 15 ^ -(Val(xR) > 1)
      Next
   End If
   If .Column = 15 Then
      For Each xR In .Cells
         Cells(xR.Row, 16).Font.ColorIndex = 2 ^ -(Trim(xR) = "")
      Next
   End If
   If .Column = 10 Then
      For Each xR In .Cells
         Cells(xR.Row, 10).Font.Color = RGB(0, 176, 240) ^ -(Trim(xR) = "L")
         Cells(xR.Row, 10).Font.Bold = (Trim(xR) = "L")
      Next
   End If
   If .Column = 22 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.Color = RGB(153, 102, 0) ^ -((xR Like "*©î¹Ï"))
      Next
   End If
   If .Column = 16 Then
      For Each xR In .Cells
         Cells(xR.Row, 1).Resize(, 22).Font.ColorIndex = 5 ^ -(xR.Font.Strikethrough = True)
      Next
   End If
   N = N + 1
If .Column <> 5 Then Exit Sub
   For Each cell In Union(Range([e2], [e65536].End(3)), .Cells)
      st = IIf(Trim(cell) = "", "", IIf(Val(cell.Offset(0, -1)) > 1, "LOB", _
                    IIf(Application.WorksheetFunction.CountIf(cell, "S1A*") > 0, "TM", "MU")))
      cell.Offset(0, -3).Value = st
      N = N + 1
      cell.Offset(0, 3).Resize(, 2) = IIf(cell <> "", 2, "")
      N = N + 1
   Next
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MUCount&, TMCount&, cellValue, Arr, i&
Arr = Range([B2], [B65536].End(3)).Value
If IsArray(Arr) Then
   MUCount = 0: TMCount = 0
   For i = 1 To UBound(Arr, 1)
      cellValue = Arr(i, 1)
      If Not Cells(i + 1, "P").Font.Strikethrough Then
         If cellValue = "MU" Then
            MUCount = MUCount + 1
            ElseIf cellValue = "TM" Then
               TMCount = TMCount + 1
         End If
      End If
   Next
[A1] = "®×¥ó " & MUCount & "¡þ" & TMCount
N = N + 1
MsgBox "¦X­pIJµo: " & N & " ¦¸"
End If
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

        ÀR«ä¦Û¦b : ¥@¤W¦³¨â¥ó¨Æ¤£¯àµ¥¡G¤@¡B§µ¶¶ ¤G¡B¦æµ½¡C
ªð¦^¦Cªí ¤W¤@¥DÃD