Найти / выбрать сегодняшнюю дату из списка 366 дней в столбце A - PullRequest
0 голосов
/ 25 апреля 2020

Я сделал лист календаря в Excel со всеми 366 днями года, перечисленными в столбце А, как я могу написать макрос Auto_open, который автоматически выбирает и активирует ячейку, содержащую текущую дату?

Ответы [ 3 ]

1 голос
/ 25 апреля 2020

Попробуйте:

Private Sub Workbook_Open()
    Dim cell As Range
    Sheets("Sheet1").Activate
    Set cell = Range("A:A").Find(What:=Date, After:=Range("A1"))
    cell.Select
End Sub

enter image description here

1 голос
/ 25 апреля 2020

Я бы написал так:

Private Sub Workbook_Open()
Dim CellToCheck As Range

For Each CellToCheck In Sheet1.Range("A1:A366") 'To make dynamic, you could make use of finding lastrow and searching until that row.
    If CellToCheck.Value = Date Then
        CellToCheck.Select
        Exit For
    End If
Next CellToCheck

End Sub

Результат:

Screenshot of today's date selected from range in column A

Чтобы этот код работал, вам нужно: введите его в кодовый модуль ThisWorkbook и выберите Workbook и Open из соответствующих раскрывающихся меню, например:

Screenshot of the VBE showing ThisWorkbook code module set for Workbook_Open event

0 голосов
/ 25 апреля 2020
Private Sub Workbook_Open()

Dim lastrow As Long
Dim lastcol As Long
Dim t As Date
Dim u As Date
Dim v As Long
Dim w As Long
Dim notolet As String

Sheets("all").Activate ' your sheet name here
With ActiveSheet
lastrow = .Cells(Rows.Count, "A").End(xlUp).Row
lastcol = .Cells(1, Columns.Count).End(xlToLeft).Column
End With

t = Now()
u = Format(t, "dd/mm/yyyy")
notolet = Split(Cells(1, lastcol).Address, "$")(1)

For v = lastrow To 2 Step -1
Select Case Cells(v, 1).Value
    Case u
       Range("A" & v & ":" & notolet & v).Interior.ColorIndex = 6
       Exit For
End Select
Next
w = v
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...