2015-11-24 58 views
0

我嘗試創建一個將英寸值轉換爲度量值的函數。將英寸轉換爲度量值

在小區中有例如「1/12英寸」。

我的功能到現在的樣子如下:

Public Function ConInToMe(inp As String) As Integer 

    If InStr("inp, inch", ",") = 4 Then 

     inp = Left(inp, Len(inp) - 4) 
     inp = CInt(inp) 
     ConInToMe = WorksheetFunction.MRound(inp/25.4, 1/16) 
     ActiveCell.NumberFormat = "# ??/??" 
    Else 
     MsgBox ("no inch value detected") 
    End If 

End Function 

我刪除子「寸」的價值轉換。我總是在單元格中獲得#VALUE。我做錯了什麼?任何想法?

問候和THX提前, yab86

+0

有你試過沒有NumberFormat的? –

+0

是的,我做到了。沒有什麼變化 – yab86

回答

1

這工作,如果你將與0.5 inch而不是1/2 inch嘗試。我猜/把轉換加倍了。

Public Function ConInToMe(inp As String) As Double 

    Dim holder As Double 

    If InStr(inp, "inch") > 0 Then 
     inp = Left(inp, Len(inp) - 5) 
     holder = inp 
     ConInToMe = WorksheetFunction.MRound(holder * 25.4, 1/16) 
     'Debug.Print ConInToMe 
     'ActiveCell.NumberFormat = "# ??/??" 
    Else 
     MsgBox ("no inch value detected") 
    End If 

End Function 

編輯:

它醜陋,但它的工作原理爲/

Public Function ConInToMe(inp As String) As Double 

    Dim holder As Double 

    Dim con1 As Double, con2 As Double 

    If InStr(inp, "inch") > 0 Then 

     If InStr(inp, "/") > 0 Then 

     con1 = CDbl(Left(inp, InStr(inp, "/") - 1)) 
     con2 = CDbl(Mid(inp, InStr(inp, "/") + 1, InStr(inp, " ") - InStr(inp, "/"))) 

     holder = con1/con2 
     ConInToMe = WorksheetFunction.MRound(holder * 25.4, 1/16) 

     Else 

     inp = Left(inp, Len(inp) - 5) 
     holder = inp 
     ConInToMe = WorksheetFunction.MRound(holder * 25.4, 1/16) 

     End If 
    Else 
     MsgBox ("no inch value detected") 
    End If 

End Function 
+0

這可以幫助我Marco - 謝謝。問題是,我無法更改原始值(例如「1/12英寸」) – yab86

+0

@ yab86確定嘗試編輯後的版本。應該管用。我知道它不漂亮,但它的工作原理。 –

+0

謝謝Marco。我不明白爲什麼我總是得到msgbox「沒有英寸價值.....」 – yab86

0

故障原因是在inp = CInt(inp)

inp被聲明爲字符串,因此不能分配給它的整數。

也許是工作一個新的變量應該工作

-1
package test3; 

import java.util.Scanner; 

public class inchtometer { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     System.out.println("This Is Inch TO Meter Converter"); 

     float a; 
     double b; 
     Scanner mtr=new Scanner(System.in); 
     System.out.println("Enter Inch Valuse You Can Covert Meter"); 

     a=mtr.nextFloat(); 
     mtr.close(); 
     b=25.4; 
     double c=a*b; 
     System.out.println("Meter Values Is ="+c); 

    } 

} 

    enter code here 
相關問題