Поиск Текущая дата в столбце и ячейка выбора

Captionless спросил: 28 марта 2018 в 03:36 в: vba

Я нашел код, но я не понимаю, почему он не работает, я просто не знаком с VBA. Пожалуйста, помогите мне ..

То, что я пытаюсь достичь, мне нужно найти сегодня сегодня из другого wb.

Вот мой полный код:

    Sub SampleSheets("Database").Select
Dim i as Workbook
Dim c as WorkbookSet i = Workbooks("Workbook1.xlsm")
Set c = Workbooks.Open(FileName:=Range("U2").Value)
'U2 contains the link or path of the file.ThisWorkbook.ActivateSheets("Summary").Activate
Windows("Workbook1").Activate
Sheets("Database").SelectWorkbooks(2).Activate
Sheets("Summary").SelectDim FindString As Date
Dim Rng As RangeFindString = CLng(Date)
With Sheets("Summary").Range("A:A")
Set Rng = .Find(What:=FindString, After:=.Cells(.Cells.Count), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlbyColumns, SearchDirection;=xlNext,MatchCase;=False)If Not Rng Is nothing then
Application.Goto Rng, True
Else
Msgbox "Nothing Then"
End if
End with
End Sub

Другая открытая книга, которая была недавно открыта, содержит сводную листу с датами в столбце A: A

2 ответа

dbmitch ответил: 28 марта 2018 в 05:12

Если вы получаете синтаксическую ошибку - два параметра определяются с помощью точки с запятой";" вместо двоеточий":" Fix

SearchDirection;=xlNext,MatchCase;=False

становится

SearchDirection:=xlNext,MatchCase:=False

ваш синтаксис перед тестированием - Используйте Debug | Компиляция

Captionless ответил: 29 марта 2018 в 07:52
Я просто неправильно набираю двоеточия из кода выше. Извиняюсь ..
DisplayName ответил: 29 марта 2018 в 08:08

Активировать и выбирать не нужно и не вредно

Есть также некоторые синтаксические ошибки

Возможно, вы захотите перезапустить следующий код:

Sub Sample
    Dim dbSheet as Worksheet
    Dim Rng As Range    Set dbSheet = Workbooks("Workbook1.xlsm").Sheets("Database") 'set the "database" worksheet
    With Workbooks.Open(FileName:=dbSheet.Range("U2").Value).Sheets("Summary") 'open the workbook whose link is in "database" sheet cell U2 and reference its "Summary" sheet
        With  .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)) ' reference referenced sheet column A cells from row 1 down to last not empty row
            Set Rng = .Find(What:=CLng(Date), After:=.Cells(.Rows.Count), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) ' try finding current date starting from the cell at the top of referenced range
        End With 
    End With 
    If Not Rng Is nothing then
        Application.Goto Rng, True
    Else
        Msgbox "Nothing Then"
    End if
End Sub

Этот код не протестирован, но из пояснений в комментариях вы можете настроить его для достижения цели

Captionless ответил: 29 марта 2018 в 07:54
Спасибо друг! Я попробую и вернусь к тому, если это сработает!
DisplayName ответил: 29 марта 2018 в 08:09
Добро пожаловать. Я только что обнаружил синтаксическую ошибку! см редактировать код
Captionless ответил: 29 марта 2018 в 11:50
Я не столкнулся ни с одной ошибкой, хотя он не выбрал ячейку, которая содержит дату сегодня. Ячейка, которая содержит дату, является формулой. Я изменил LookIn: = xlValues ​​на xlFormulas, но пока ничего не произошло.