Фильтрация между двумя датами в сводной таблице с использованием VBA. Формат даты в Великобритании и США
Я нашел обходной путь для этого, но если у кого-то есть более чистый способ сделать это, я был бы заинтересован / благодарен.
У меня есть два поля в электронной таблице, которые называются DateFrom и DateTo для использования с фильтром Date в сводной таблице. Оба в формате ДД / ММ / ГГГГ. Подача данных в таблицу также осуществляется в этом формате. Сводная таблица также возвращает даты в том же формате. Все мои настройки на английском языке в Великобритании, и я пробовал это на отдельной машине с теми же результатами.
Затем я использую следующий код для подачи в сводную таблицу:
ActiveSheet.PivotTables("Pivot").PivotFields("Date").PivotFilters. _
Add Type:=xlDateBetween, Value1:=Range("DateFrom").Value, Value2:=Range("DateTo").Value
Код считывает две ячейки как строку, а затем применяет это к сводной таблице, как если бы они были в формате США (MM / DD / YYYY). Смешной!
Вот как я обошел это:
У меня было еще две ячейки, смотрящие на эти две ячейки в числовом формате, и вместо этого я нацелил код на эти две ячейки. Не уверен ни в одном из вас, но я бы изо всех сил пытался преобразовать любую дату в числовую в моей голове ...!
Если у вас есть упрощенное решение и / или объяснение этого полного безумия, я был бы очень признателен!