Есть ли способ предложить пользователю макроса ввести свой собственный диапазон дат? - PullRequest
0 голосов
/ 20 января 2020

Я новичок в использовании макросов. Я хотел бы иметь возможность ввести свой собственный диапазон дат для последующего анализа. Например, с 1 мая 2019 года по 30 июня 2019 года. Это то, что у меня есть для этого случая, однако я бы хотел, чтобы это можно было изменить, поэтому потребовалось бы какое-то приглашение для пользователя. Мне также нужно, чтобы данные, не входящие в этот временной диапазон, были удалены из таблицы. Что я имею, я не уверен, как это будет работать. Спасибо ~

Sub DateQuery()
' DateQuery Macro
  ActiveSheet.ListObjects("Table_main_drawings").Range.AutoFilter Field:=7, _
        Criteria1:=">=5/1/2019", Operator:=xlAnd, Criteria2:="<=6/30/2019"
End Sub

Ответы [ 2 ]

1 голос
/ 20 января 2020

@ JNevill ударил гвоздь по голове. Однако при подготовке к решению вашей второй задачи по удалению данных, не относящихся к данному временному интервалу, я бы предложил либо A) объявление fromDate и toDate типом Date, либо B) преобразование fromDate и * От 1005 * до Date через Format().

См. Format() документацию здесь .

1 голос
/ 20 января 2020

Вполне возможно. Вы можете объявить две переменные для хранения дат, а затем использовать InputBox() для получения ввода пользователя:

Sub DateQuery()
' DateQuery Macro
    'Define two variables to hold your dates
    Dim fromDate As String
    Dim toDate As String

    'Ask the user for the dates
    fromDate = InputBox("Please enter the start date using date format mm/dd/yyyy", "Start Date")
    toDate = InputBox("Please enter the end date using date format mm/dd/yyyy", "End Date")

    'Use your variables by concatenating them into your existing code
    ActiveSheet.ListObjects("Table_main_drawings").Range.AutoFilter Field:=7, _
        Criteria1:=">=" & fromDate, Operator:=xlAnd, Criteria2:="<=" & toDate
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...