Я получаю ошибку с моей VBA и не понимаю, почему:VBA If/Then с ActiveCell вопрос
Я пытаюсь сделать MsgBox появляется, когда ActiveCell в активной книге не удовлетворяет критерии.
вот моя короткая строка кода:
If ActiveWorkbook.ActiveCell <> ActiveCell.NumberFormat = "mm/dd/yyyy hh:mm:ss" Then MsgBox "Please Enter a Date"
Ошибка я получаю это:
Run-time error '438':
Object doesn't support this property or method.
Кто-нибудь есть идея о том, почему это произошло?
EDIT:
В настоящее время мы имеем макрос в наших книгах, которые автоматически записывает время NOW(), когда аналитик нажимает на пустую ячейку. Они могут вернуться и изменить эту дату (потому что иногда им это нужно), но иногда они забывают добавить в формате MM/DD/YYYY и просто иметь hh: mm: ss, что не помогает, когда мы пытаемся используйте эти ячейки для вычитания из разных дат. Я хочу, чтобы аналитику требуется, чтобы убедиться, что клетка, они просто изменили в формате «мм/дд/гггг чч: мм: сс»
SAMPLE: Вот некоторые примеры кода я до сих пор:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'
' TimeStamp Macro
'
Dim AutoTime
AutoTime = True 'set to False to stop auto date/time insertion on mouse click
If (AutoTime And ActiveCell = "" And ActiveCell.Column > 6 And ActiveCell.Column < 17 And ActiveCell.Row > 3) Then
ActiveCell.FormulaR1C1 = "=NOW()"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.NumberFormat = "hh:mm:ss"
End Sub
С кем я работаю с предоставленным. Что он вводит в СЕЙЧАС() в активную ячейку, когда аналитик нажимает ее, если ячейка пуста.
Так,
G H I
1/5/2017
становится,
G H I
1/5/2017 1/5/2017 09:30:00 A.M.
Теперь аналитик может снова нажмите I, а ячейка будет возвращать NOW().
Вопрос:
Иногда аналитик изменить эти времена, особенно когда функция NOW() не требуется. То, что они не делают это, включают «1/5/2017» впереди, так что теперь у меня есть
G H I
1/5/2017 1/5/2017 09:30:00 A.M. 10:45:00 A.M.
Я хочу, чтобы окно сообщения появляются, когда какой-либо из ячеек в моем диапазоне, что они изменили вручную Безразлично 't include' mm/dd/yyyy ', потому что excel не нравится I1 - H1
Вашего логическое выражение невероятно трудно разобрать, * если * это действительно вообще. И если он действителен, он, вероятно, не оценивает то, что, по вашему мнению, должно. Ниже приведено предположение о том, что именно вы пытаетесь оценить. –
Кол-во подробностей – DukeLuke
Почему формат ячейки влияет на вычитание? Формат просто говорит, как он должен отображаться **, а не то, что является базовым номером в ячейке. Это похоже на то, что они только что ввели время, а не дату и время. – YowE3K