返回列表 上一主題 發帖

[發問] 有關於資料型態

[發問] 有關於資料型態

請教各位前輩

關於資料型態

我想從一個欄位去判斷並決定他的資料型態,應該要怎麼做??
例如:
          在 cells(4,10) 欄位中若為
              U2  代表數值範圍為 0 ~ 65535
              U1  代表數值範圍為 0 ~ 255
              S1  代表數值範圍為 -127 ~ +127
              S2  代表數值範圍為 -32767 ~ +32767

          1 & 2 即代表 2^8 & 2^16                                             
          U 代表 僅含正值
          S 代表 帶有負值

          而當我在 cells(4,11) 輸入最小值, cells(4,12) 輸入最大值
          要有辦法判斷輸入的值要在上述的範圍內且會修正其最大值最小值的範圍
          例如  cells(4,10) 為 U2 ,cells(4,11)輸入 10   cells(4,12)輸入 3000
                  則 cells(4,13) 會輸出 10~3000

不知道各位前輩是否懂我的描述,能替我解憂??
感激不盡

多謝大大,讓我對這方面有新的見解

我有試另外一個方法可以減少code size
程式寫法大概像下面這樣:利用2^X 來判斷

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

        靜思自在 : 不要小看自己,因為人有無限的可能。
返回列表 上一主題