2015-07-15 4 views
0

У меня есть следующие данные в моей таблице excel. Мои требования - выделить весь столбец текущей даты.

my excel table

Я нашел код, где поиск по датам мои и выбрать текущую дату. Однако, когда я пытаюсь перейти к другой ячейке для ввода некоторых данных, она продолжает возвращаться к выбранной дате, и я не смог сделать ключ. Ниже мой код.Excel VBA выделить целую колонку в соответствии с сегодняшней датой

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
    Dim TodaysDate As Date 
    Dim Rng As Range 

    TodaysDate = CLng(Date) 
    With Rows("1:1") 
    Set Rng = .Find(what:=TodaysDate, _ 
    after:=.Cells(.Cells.Count), _ 
    LookIn:=xlFormulas, _ 
    lookat:=xlWhole, _ 
    SearchOrder:=xlByRows, _ 
    SearchDirection:=xlNext, MatchCase:=False) 

If Not Rng Is Nothing Then 
Application.Goto Rng, True 
Else 

'Give a message that today's date was not found 

    MsgBox "Nothing found" 
End If 
End With` 


Приведенный выше код не включает подсветку часть еще, так как я понятия не имею, как это сделать, так как я просто научиться делать VBA со вчерашнего дня.
Любая помощь будет оценена по достоинству.

ответ

1

Чтобы использовать VBA:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Dim TodaysDate As Date 
    Dim Rng As Range 

    TodaysDate = CLng(Date) 
    With Rows("1:1") 
    Set Rng = .Find(what:=TodaysDate, _ 
    after:=.Cells(.Cells.Count), _ 
    LookIn:=xlFormulas, _ 
    lookat:=xlWhole, _ 
    SearchOrder:=xlByRows, _ 
    SearchDirection:=xlNext, MatchCase:=False) 
If Not Rng Is Nothing Then 
Rng.EntireColumn.Interior.Color = vbMagenta 
Else 

'Give a message that today's date was not found 

    MsgBox "Nothing found" 
End If 
End With 
End Sub 
+0

IT WORKS !! Большое спасибо Abe – LBMG

1

Вы можете пропустить весь VBA и использовать условное форматирование. Смотрите скриншот: enter image description here

+0

спасибо за немедленный ответ но условное форматирование вы использовали? – LBMG

+0

Смотрите скриншот. Выберите столбец DH, выберите условное форматирование, используйте формулу ...., в формуле bos окна условного форматирования введите = DH $ 1 = TODAY(), нажмите кнопку «Формат» и выберите цвет заливки, который вы хотите использовать. Нажмите «ОК». Затем вы можете использовать формат, чтобы скопировать этот формат во все остальные столбцы. –

+0

Теперь я понимаю. Но если это работает только с текущим листом, это не сработает, если мне нужно открыть еще один новый лист, и это было бы неудобно, если я должен выполнить повторяющуюся задачу. – LBMG

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