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

[µo°Ý] ¦³Ãö©ó¸ê®Æ«¬ºA

[µo°Ý] ¦³Ãö©ó¸ê®Æ«¬ºA

½Ð±Ð¦U¦ì«e½ú

Ãö©ó¸ê®Æ«¬ºA

§Ú·Q±q¤@­ÓÄæ¦ì¥h§PÂ_¨Ã¨M©w¥Lªº¸ê®Æ«¬ºA¡AÀ³¸Ó­n«ç»ò°µ??
¨Ò¦p¡G
          ¦b cells(4,10) Äæ¦ì¤¤­Y¬°
              U2  ¥Nªí¼Æ­È½d³ò¬° 0 ~ 65535
              U1  ¥Nªí¼Æ­È½d³ò¬° 0 ~ 255
              S1  ¥Nªí¼Æ­È½d³ò¬° -127 ~ +127
              S2  ¥Nªí¼Æ­È½d³ò¬° -32767 ~ +32767

          1 & 2 §Y¥Nªí 2^8 & 2^16                                             
          U ¥Nªí ¶È§t¥¿­È
          S ¥Nªí ±a¦³­t­È

          ¦Ó·í§Ú¦b cells(4,11) ¿é¤J³Ì¤p­È¡A cells(4,12) ¿é¤J³Ì¤j­È
          ­n¦³¿ìªk§PÂ_¿é¤Jªº­È­n¦b¤W­zªº½d³ò¤º¥B·|­×¥¿¨ä³Ì¤j­È³Ì¤p­Èªº½d³ò
          ¨Ò¦p  cells(4,10) ¬° U2 ¡Acells(4,11)¿é¤J 10   cells(4,12)¿é¤J 3000
                  «h cells(4,13) ·|¿é¥X 10~3000

¤£ª¾¹D¦U¦ì«e½ú¬O§_À´§Úªº´y­z¡A¯à´À§Ú¸Ñ¼~??
·P¿E¤£ºÉ

¥»©«³Ì«á¥Ñ hugh0620 ©ó 2011-4-8 18:26 ½s¿è

¦^´_ 1# a703130


      ¼Ó¥D­nªº¬O¤£¬O¦p¤U¹Ïªºµ²ªG©O???
      ¦Û¦æ±a¥X¬O­n«ö¶s¦¡??©Î¬O¿é¤J§¹´N¦Û¦æ±a¥X??
      »Ý¨D¤£¤@¼Ë~ ¼gªk´N¤£¤@¼Ë­ò??

     
      ¥ý¼g¤@­Ó¿é¤J§¹´N¦Û¦æ±a¥X
      ¨Ì±z³]©wªºcells(4,10)ªº¦ì¸m¼¶¼g
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
  Select Case Target.Column
  Case 10
       If Target = "" Or Target.Offset(0, 1) = "" Or Target.Offset(0, 2) = "" Then Exit Sub
       If Target = "U2" Then  'U2=0 ~ 65535
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 65536 Then      '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 2) >= 0 And Target.Offset(0, 2) <= 65536 Then  '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 2)
          Else
             Max1 = 65535
          End If
          Target.Offset(0, 5) = "0 ~ 65535"
       ElseIf Target = "U1" Then  'U1=0 ~ 255
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 255 Then        '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 2) >= 0 And Target.Offset(0, 2) <= 255 Then     '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 2)
          Else
             Max1 = 255
          End If
          Target.Offset(0, 5) = "0 ~ 255"
       ElseIf Target = "S1" Then   'S1=-127 ~ +127
          If Target.Offset(0, 1) >= -127 And Target.Offset(0, 1) <= 127 Then       '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = -127
          End If
          If Target.Offset(0, 2) >= -127 And Target.Offset(0, 2) <= 127 Then     '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 2)
          Else
             Max1 = 127
          End If
          Target.Offset(0, 5) = "-127 ~ +127"
       Else  'S2=-32767 ~ +32767
          If Target.Offset(0, 1) >= -32767 And Target.Offset(0, 1) <= 32767 Then       '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = -32767
          End If
          If Target.Offset(0, 2) >= -32767 And Target.Offset(0, 2) <= 32767 Then     '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 2)
          Else
             Max1 = 32767
          End If
          Target.Offset(0, 5) = "'-32767 ~ +32767"
       End If
          Target.Offset(0, 3) = Min1 & "~" & Max1
  
  Case 11
       If Target = "" Or Target.Offset(0, -1) = "" Or Target.Offset(0, 1) = "" Then Exit Sub
       If Target.Offset(0, -1) = "U2" Then  'U2=0 ~ 65535
          If Target >= 0 And Target <= 65535 Then     '§PÂ_³Ì¤p­È
             Min1 = Target
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 65535 Then '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 1)
          Else
             Max1 = 65535
          End If
          Target.Offset(0, 4) = "0 ~ 65535"
       ElseIf Target.Offset(0, -1) = "U1" Then  'U1=0 ~ 255
          If Target >= 0 And Target <= 255 Then                   '§PÂ_³Ì¤p­È
             Min1 = Target
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 255 Then   '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 1)
          Else
             Max1 = 255
          End If
          Target.Offset(0, 4) = "0 ~ 255"
       ElseIf Target.Offset(0, -1) = "S1" Then   'S1=-127 ~ +127
          If Target >= -127 And Target <= 127 Then      '§PÂ_³Ì¤p­È
             Min1 = Target
          Else
             Min1 = -127
          End If
          If Target.Offset(0, 1) >= -127 And Target.Offset(0, 1) <= 127 Then     '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 1)
          Else
             Max1 = 127
          End If
          Target.Offset(0, 4) = "-127 ~ +127"
       Else  'S2=-32767 ~ +32767
          If Target >= -32767 And Target <= 32767 Then       '§PÂ_³Ì¤p­È
             Min1 = Target
          Else
             Min1 = -32767
          End If
          If Target.Offset(0, 1) >= -32767 And Target.Offset(0, 1) <= 32767 Then     '§PÂ_³Ì¤j­È
             Max1 = Target.Offset(0, 1)
          Else
             Max1 = 32767
          End If
          Target.Offset(0, 4) = "-32767 ~ +32767"
       End If
          Target.Offset(0, 2) = Min1 & "~" & Max1
         
  Case 12
       If Target = "" Or Target.Offset(0, -1) = "" Or Target.Offset(0, -2) = "" Then Exit Sub
      
       If Target.Offset(0, -2) = "U2" Then  'U2=0 ~ 65535
          If Target.Offset(0, -1) >= 0 And Target.Offset(0, -1) <= 65535 Then      '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = 0
          End If
          If Target >= 0 And Target <= 65535 Then  '§PÂ_³Ì¤j­È
             Max1 = Target
          Else
             Max1 = 65535
          End If
          Target.Offset(0, 3) = "0 ~ 65535"
       ElseIf Target.Offset(0, -2) = "U1" Then  'U1=0 ~ 255
          If Target.Offset(0, -1) >= 0 And Target.Offset(0, -1) <= 255 Then                   '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = 0
          End If
          If Target >= 0 And Target <= 255 Then     '§PÂ_³Ì¤j­È
             Max1 = Target
          Else
             Max1 = 255
          End If
          Target.Offset(0, 3) = "0 ~ 255"
       ElseIf Target.Offset(0, -2) = "S1" Then   'S1=-127 ~ +127
          If Target.Offset(0, -1) >= -127 And Target.Offset(0, -1) <= 127 Then      '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = -127
          End If
          If Target >= -127 And Target <= 127 Then      '§PÂ_³Ì¤j­È
             Max1 = Target
          Else
             Max1 = 127
          End If
          Target.Offset(0, 3) = "-127 ~ +127"
       Else  'S2=-32767 ~ +32767
          If Target.Offset(0, -1) >= -32767 And Target.Offset(0, -1) <= 32767 Then        '§PÂ_³Ì¤p­È
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = -32767
          End If
          If Target >= -32767 And Target <= 32767 Then     '§PÂ_³Ì¤j­È
             Max1 = Target
          Else
             Max1 = 32767
          End If
          Target.Offset(0, 3) = "-32767 ~ +32767"
        End If
          Target.Offset(0, 1) = Min1 & "~" & Max1
  End Select

End Sub
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

¦hÁ¤j¤j¡AÅý§Ú¹ï³o¤è­±¦³·sªº¨£¸Ñ

§Ú¦³¸Õ¥t¥~¤@­Ó¤èªk¥i¥H´î¤Öcode size
µ{¦¡¼gªk¤j·§¹³¤U­±³o¼Ë¡G§Q¥Î2^X ¨Ó§PÂ_

If Mid(Cells(4, 10), 1, 1) = "U" Then
        Select Case Mid(Cells(4, 10), 2, 1)
            Case Is = 1
            bit = 8
            Case Is = 2
            bit = 16
            Case Is = 3
            bit = 24
            Case Is = 4
            bit = 32
        End Select
        max1 = 2 ^ bit - 1
        min1 = 0
        Cells(4, 17).Value = min1 & "~" & max1
        
        If Cells(4, 15) > min1 Then
            min1 = Cells(4, 15)
        End If
        
        If Cells(4, 16) < max1 Then
            max1 = Cells(4, 16)
        End If
        Cells(4, 18).Value = min1 & "~" & max1
        
        
    ElseIf Mid(Cells(4, 10), 1, 1) = "S" Then
        Select Case Mid(Cells(4, 10), 2, 1)
            Case Is = 1
            bit = 7
            Case Is = 2
            bit = 15
            Case Is = 3
            bit = 23
            Case Is = 4
            bit = 31
        End Select
        max1 = 2 ^ bit - 1
        min1 = 1 - 2 ^ bit        
        Cells(4, 17).Value = min1 & "~" & max1        
        If Cells(4, 15) > min1 Then
            min1 = Cells(4, 15)
        End If
        
        If Cells(4, 16) < max1 Then
            max1 = Cells(4, 16)
        End If
        Cells(4, 18).Value = min1 & "~" & max1     
    End If
    Next

TOP

¥»©«³Ì«á¥Ñ hugh0620 ©ó 2011-4-20 19:09 ½s¿è

¦^´_ 3# a703130


    ¼Ó¥D~ ªº¼gªk¬O¥i¥Hºw­ò~ ¥u­n±z°õ¦æ«á¨S¦³¿ù»~´Nok­ò~  (¤£¹L~ À°§A´ú¸Õ¤@¤Uµ²ªG¬O¿ùªº­ò~)
    ¼Ó¥D~ ÁÙ­n¦A¦Û¤v´ú¸Õ¤@¤U.....
    ³Ì¦n±z¦b´ú¸Õ®É~ §â¸Ó¦³ªº¥i¯à©Ê³£¯à¦Ò¶q¶i¥h~ ³o¼Ëµ²ªG¤ñ¸û¤£®e©ö¥X¿ù­ò~
¾Ç²ß¤~¯à´£¤É¦Û¤v

TOP

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Intersect(Target, [J4:L4]) Is Nothing Then Exit Sub
  3. a = Array("U2", "U1", "S1", "S2")
  4. b = Array(0, 0, -127, -32767)
  5. c = Array(65535, 255, 127, 32767)
  6. k = Application.Match([J4], a, 0) - 1
  7. [M4] = Application.Max([K4], b(k)) & "~" & Application.Min([L4], c(k))
  8. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

        ÀR«ä¦Û¦b : ¤H­nª¾ºÖ¡B±¤ºÖ¡B¦A³yºÖ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD