返回列表 上一主題 發帖

[發問] 有關於資料型態

本帖最後由 hugh0620 於 2011-4-8 18:26 編輯

回復 1# a703130


      樓主要的是不是如下圖的結果呢???
      自行帶出是要按鈕式??或是輸入完就自行帶出??
      需求不一樣~ 寫法就不一樣唷??

     
      先寫一個輸入完就自行帶出
      依您設定的cells(4,10)的位置撰寫
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      '判斷最小值
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 2) >= 0 And Target.Offset(0, 2) <= 65536 Then  '判斷最大值
             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        '判斷最小值
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 2) >= 0 And Target.Offset(0, 2) <= 255 Then     '判斷最大值
             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       '判斷最小值
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = -127
          End If
          If Target.Offset(0, 2) >= -127 And Target.Offset(0, 2) <= 127 Then     '判斷最大值
             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       '判斷最小值
             Min1 = Target.Offset(0, 1)
          Else
             Min1 = -32767
          End If
          If Target.Offset(0, 2) >= -32767 And Target.Offset(0, 2) <= 32767 Then     '判斷最大值
             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     '判斷最小值
             Min1 = Target
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 65535 Then '判斷最大值
             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                   '判斷最小值
             Min1 = Target
          Else
             Min1 = 0
          End If
          If Target.Offset(0, 1) >= 0 And Target.Offset(0, 1) <= 255 Then   '判斷最大值
             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      '判斷最小值
             Min1 = Target
          Else
             Min1 = -127
          End If
          If Target.Offset(0, 1) >= -127 And Target.Offset(0, 1) <= 127 Then     '判斷最大值
             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       '判斷最小值
             Min1 = Target
          Else
             Min1 = -32767
          End If
          If Target.Offset(0, 1) >= -32767 And Target.Offset(0, 1) <= 32767 Then     '判斷最大值
             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      '判斷最小值
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = 0
          End If
          If Target >= 0 And Target <= 65535 Then  '判斷最大值
             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                   '判斷最小值
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = 0
          End If
          If Target >= 0 And Target <= 255 Then     '判斷最大值
             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      '判斷最小值
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = -127
          End If
          If Target >= -127 And Target <= 127 Then      '判斷最大值
             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        '判斷最小值
             Min1 = Target.Offset(0, -1)
          Else
             Min1 = -32767
          End If
          If Target >= -32767 And Target <= 32767 Then     '判斷最大值
             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
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-4-20 19:09 編輯

回復 3# a703130


    樓主~ 的寫法是可以滴唷~ 只要您執行後沒有錯誤就ok唷~  (不過~ 幫你測試一下結果是錯的唷~)
    樓主~ 還要再自己測試一下.....
    最好您在測試時~ 把該有的可能性都能考量進去~ 這樣結果比較不容易出錯唷~
學習才能提升自己

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題