У меня есть таблица Excel, которая отслеживает свойства. У меня есть столбец, который отслеживает предполагаемую дату закрытия (столбец D). Когда я вписываю дату в столбец D, у меня есть макрос, который сортирует эту строку по предполагаемой дате закрытия, и это прекрасно работает.
Что я хотел бы сделать, так это иметь столбец с фактической датой закрытия (столбец K). Когда я ввожу дату в столбец K, я хотел бы игнорировать сортировку по столбцу D и просто вырезать строку, в которую я только что ввел дату закрытия, и вставить ее ниже всех строк, которые имеют только предполагаемые даты закрытия (чтобы все свойства, которые на самом деле закрыты, располагаются внизу электронной таблицы, причем самое последнее закрытие является самым верхним. Ниже приведен макрос, который автоматически сортирует по дате, когда я вводю ее в столбец D.
On Error Resume Next
If Not Intersect(Target, Range("D:D")) Is Nothing Then
Range("D1").Sort Key1:=Range("D2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub
Я использовал WorksheetFunction.CountA()
в другой программе, чтобы найти первую строку, в которой есть данные в определенном столбце, но здесь я в основном хочу, чтобы вторая строка с данными в столбце K (поскольку первая строка с заполненным столбцом K тот, который мне нужно вырезать и вставить, если хотите).
Я спорю, структурируя это как вырезание и вставка, и в этом случае единственные проблемы - это найти, какую строку вырезать и куда вставить, или, как правило, два вида, но таким образом, что только один происходит за раз .
![Sorted by estimated closing date](https://i.stack.imgur.com/utIqn.png)
![Sorted by actual closing date (I had to delete col D to demonstrate but ideally it would still be there)](https://i.stack.imgur.com/BweSs.png)
![Second closed property sorted appropriately](https://i.stack.imgur.com/K5pwB.png)