2016-08-16 21 views
1

私のスプレッドシートには、1415または415または45または5の形式で時間があります。これを14:15または04:15、00:45、または00:05に変換する必要があります。選択ケースと連結

は、ここで私が試してみましたコーディングだが、それは私にエラーメッセージが表示できます:

コンパイルエラー:サブまたは関数あなたはVBAの関数のようにエクセル数式を使用しようとしている

Dim LENGTH As Integer 
Do Until IsEmpty(ActiveCell.Value) 
ActiveCell.Offset(1, 0).Range("A1").Select 
a = ActiveCell.Value 
LENGTH = Len(a) 
    Select Case LENGTH 
     Case Is = 4 
      B = Value(Concatenate(Left(a, 1), ":", Right(a, 2))) 
     Case Is = 3 
      B = Value(Concatenate("0", Left(a, 1), ":", Right(a, 2))) 
     Case Is = 2 
      B = Value(Concatenate("00", ":", Right(a, 2))) 
     Case Is = 1 
      B = value(Concatenate("00:0", ":", Right(a, 1))) 
    End Select 
ActiveCell.Value = B 
Selection.NumberFormat = "hh:mm" 
Loop 

答えて

2

を定義されていませんが。
場合によっては、WorksheetFunctionのみを使用してください。

例:

Sum(1, 2, 3) 

が動作しません。

WorksheetFunction.Sum(1, 2, 3) 

となります。

重要:ほとんどが、すべて WorksheetFunctionsはVBAでアクセス可能ではありません。原則として、同等のVBAソリューションを持つ関数は、WorksheetFunctionを通じてアクセスできません。

たとえば、連結されていません。あなたは、しかし、&で文字列を連結することができます。

"Apple " & "Pie" -> "Apple Pie" 
+1

トリックをやったおかげULLIは、私がCONCATENATEを削除し、「&」を使用し、それは魔法のように動作します。 – Baber62

関連する問題