#excel #excel-formula #vba
#excel #excel-формула #vba
Вопрос:
Итак, я пытаюсь проанализировать диапазон чисел в ячейке в Excel. Например, «5-C» указывает на время от 5 до закрытия, закрытие — это 10 вечера, но длится до 11 вечера, так что этот сдвиг составит в общей сложности 6 часов. Тире является разделителем между временем A и временем B. Так что это мое соглашение. Кто-нибудь может указать мне правильное направление. Я знаю, как кодировать C #, поэтому я изучал возможность написания макроса на C # для выполнения синтаксического анализа. Однако я обнаружил, что Excel не поддерживает это? Буду признателен за любую помощь. Целью этого является еженедельное планирование. Спасибо.
Комментарии:
1. Сначала вам нужно перевести ваш метод хранения времени во что-то, что Excel может понимать как время. Найдите информацию о том, как Excel хранит и отображает дату / время. Вы могли бы сделать это либо с помощью формул, либо с помощью макроса VBA.
2. Excel не может запускать C #, но C # может запускать Excel :] msdn.microsoft.com/en-us/library/dd264733.aspx . Похоже, вы можете просто использовать формулу Excel для этого, но не совсем ясно, в чем заключается ваш вопрос и каковы входные данные и желаемый результат. Например, формула Excel like
=11-SUBSTITUTE(A1,"-C","")
приводит к 6, еслиA1
содержит только5-C
.
Ответ №1:
Я думаю, что первый шаг — разделить строку через тире. Затем вы можете обрабатывать числовую часть и букву «C» с помощью вашей конкретной логики.
Вы можете найти тире с помощью InStr
, а затем разделить вашу строку. В следующем примере функция вернет вам первую часть (время A) входной строки. Это также сократит исходную строку, оставив вторую часть после тире (время B).
Private Function Split(org as String, delimiter As String) as String
Dim break as Integer
break = InStr(1, org, delimiter, vbTextCompare)
TimeA = Left(org, break-1)
TimeB = Mid(org, break 1)
End Function