2015-03-31 3 views
-1

У меня есть два столбца M и U, содержащие запись о времени сотрудника на листе Excel, но формат времени неверен, это что-то вроде 08:13a. Я хочу, чтобы он выглядел как 08.13, чтобы использовать формулу вычитания, например =U2-M2, чтобы получить разницу. поэтому я хочу заменить : на . и получить поездку последнего символа с помощью Excel VBA.Как удалить последний символ и заменить `:` на..

+0

[Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). Покажите, что вы пытались сделать, мы можем исправить это. – FreeMan

+0

В какое время дня '08: 13a' должен представлять и каков ваш разделитель для десятичных знаков. – pnuts

+0

@pnuts Спасибо, его за '3/26/2015'. Формат времени выглядит так, как '08: 13a' это и формат поля даты' 3/26/2015'. Я думаю, что excel рассматривал его как текст из-за ':' и буквы 'a', чтобы я мог выполнять математический расчет – Keven

ответ

2

если 8: 13а действительно 8 часов, 13 минут, затем работает:

Sub TimeFixer() 
    For Each r In Selection 
     ary = Split(Mid(r.Text, 1, Len(r.Text) - 1), ":") 
     r.Value = TimeSerial(ary(0), ary(1), 0) 
     r.NumberFormat = "hh:mm:ss" 
    Next r 
End Sub 

произведут время вы можете использовать численно.

EDIT # 1:

формула:

=TIMEVALUE(LEFT(A1,LEN(A1)-1)) 

, например:

enter image description here

Или в коде заменить Выбор что-то вроде Range (» A1: A100 ")

Существует много способов кожи этой кошки.

+0

Большое вам спасибо @ Работа Гэри как шарм. Но есть ли способ поместить диапазон ячеек в формулу вместо выбора диапазона ячеек вручную? – Keven

+1

@Keven см. Мой ** ИЗМЕНИТЬ # 1 ** –

Смежные вопросы