Я новичок в VBA. Я автоматизирую столбец даты листа Excel, чтобы подсчитать, сколько дат находится между датой начала и датой окончания.
Я закодировал, как показано ниже.
F11 = Application.GetOpenFilename("Copy of CES-Product Backlog (*.xlsm*), *.xlsm*")
If (F11 <> vbNullString) Then
If (F11 <> "False") Then
f_name1 = F11
End If
End If
If (f_name1 = "") Then
MsgBox "The Product Backlog file must be specified."
Exit Sub
End If
Set wb1 = Excel.Workbooks.Open(f_name1)
Set sht1 = wb1.Sheets("Product Backlog")
Set wb3 = ThisWorkbook
Set sht3 = wb3.Sheets("check")
With sht3
StartDate = sht3.Range("J3").Value
If IsDate(StartDate) = True Then
MsgBox ("The following string is a valid date expression")
Else
'if its not a date expression show a message box
MsgBox ("The following string is not a valid date expression")
End If
EndDate = sht3.Range("J4").Value
Debug.Print EndDate
End With
wb1.Activate
sht1.Activate
sht1.Columns("O:O").Select
wb1.Worksheets("Product Backlog").Sort.SortFields.Clear
wb1.Worksheets("Product Backlog").Sort.SortFields.Add2 Key:=Range( _
"O1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With wb1.Worksheets("Product Backlog").Sort
.SetRange Range("O1:O3437")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'sht1.Columns("X:X").Select
sht1.Range("$A$1:$X$3432").AutoFilter Field:=15, Criteria1:= _
">=StartDate", Operator:=xlAnd, Criteria2:="<=EndDate"
Я хочу отфильтровать столбец 15 (столбец даты) листа невыполненных работ по продукту. В текущей книге, где я занимаюсь кодированием, я взял две ячейки ( J3 , J4 ) в качестве даты начала и даты окончания. когда я нажимаю кнопку, он будет учитывать дату начала и дату окончания и go добавит в столбец 15 листа невыполненных работ по продукту и автоматически отфильтрует его с помощью >=StartDate", Operator:=xlAnd, Criteria2:="<=EndDate"
.
Эта команда не фильтрует столбец 15, а делает столбец пустой, я имею в виду, что он фильтрует все значение. Я не могу понять, в чем проблема с командой. Пожалуйста, пожалуйста, у кого-нибудь есть идея исправить это, добро пожаловать.