последний месяц в VBA Excel - PullRequest
1 голос
/ 05 декабря 2008

У меня есть таблица с большим количеством информации, как выбрать стоимость только за последние месяцы? (т.е. только последние 31 ячейка в столбце?)

Данные в форме

date1       numbers
date2       numbers
.             .
.             .
.             .
daten       numbers

, где date1 - дд / мм / ccyy

ура

Ответы [ 2 ]

2 голосов
/ 05 декабря 2008

В идеале должен быть столбец с датой. Тогда вы могли бы сделать расширенный фильтр для фильтрации по нужному диапазону дат. Выбор последних 31 дней не всегда выбирает только один месяц. Также можно выбрать до 3 дней с предыдущего месяца.


Public Sub selectLastMonth()
  Dim ws As Worksheet
  Dim dStart As Date, dEnd As Date

  Set ws = ActiveSheet
  ws.Range("A:B").Sort key1:=ws.Range("A2"), header:=xlYes

  dEnd = ws.Range("A1").End(xlDown).Value
  dStart = DateSerial(DatePart("yyyy", dEnd), DatePart("m", dEnd), 1)

  ws.Range("A:B").AutoFilter field:=1, Criteria1:=">=" & dStart, Operator:=xlAnd, Criteria2:="<=" & dEnd

  Set ws = Nothing
End Sub
1 голос
/ 05 декабря 2008

использование

LastRow = Sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row

тогда вы можете получить диапазон от LastRow-31 до LastRow если у вас есть указанная дата, переместите начальную точку вперед до значения даты = дата (если (now.month = 1, now.year-1, now.year), if (now.month = 1,12, now .month-1), сейчас.день)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...