2016-07-10 10 views
-1

dd hh:mm出力を分単位で変換する方法。HH:MM:SSを分単位で変換

つまり、「dd hh:mm」が「01 10:20」の場合、分数「2060」に値が必要です。

Sub ACD() 

lastrow = ActiveSheet.UsedRange.Rows.Count 

Range("C1").Select 

ActiveCell.FormulaR1C1 = "=IFERROR(TEXT(RC[-1]-NOW(),""dd hh:mm""),""00 00:00"")" 

Selection.AutoFill Destination:=Range("C1:c" & lastrow) 

For b = 1 To lastrow 

    b = DateDiff("n", Now(), Range("B" & b).Value) 

Next 

End Sub 
+0

時間が60分、1日は24時間または1440分であることに気付きますか? VBAで数学をやると、「時間(someDate)* 60 +分(someDate)+ ....」が終了します。 – Ralph

+0

私はVBAを初めて使っています...その場所を変更する場所が正確にわからない... –

+0

また、forループ変数に分を割り当てようとしています。私はあなたが望むものだとは思わない。 –

答えて

0

誰かが述べたように、あなたは本当にこのためにVBAを必要としませんが、Excelで何か

Sub ACD()  
    With ActiveSheet.UsedRange.Range("C:C") 
     .FormulaR1C1 = "=IFERROR((RC[-1] - NOW()) * 24 * 60 , 0)" 
     .NumberFormat = "0" 
    End With 
End Sub 

のような日付は、日数、その列Bの日付との差として保存され、現在の日時は 1.43055555556のような日数を与えます。 1日の時間数と1時間の分数(24 * 60 = 1440)を乗算すると、 2060.1234のようなものが得られます。その差異を整数 2060として表示するには、 .NumberFormat = "0"を使用します。秒を指定せずに分だけを使用する場合は、 INTまたは ROUNDの関数を使用できます。 =IFERROR(INT((RC[-1] - NOW()) * 24 * 60) , 0)

+0

それは共通のエラー "91"を与えます。オブジェクト変数またはブロックが設定されていません –

+0

ops ..私は 'Set'を忘れました – Slai

+0

完璧!!!!!ありがとう@Slai .. :-)それはどのように動作するか説明する分を余裕を持ってください –

関連する問題