Понедельник, 19 марта 2018
  0 Ответы
  5 тыс. Посещений
Здравствуйте, в прошлом я использовал VBA для выполнения определенных действий в Office и забыл больше, чем помню. При этом я использую Microsoft Windows 7 Home Premium с более старой версией Microsoft Office Excel (думаю, 2003 года).

У меня есть электронная таблица, которую я использую для отслеживания своей медиа-коллекции mp4 и тому подобного. Используя команду dir в командном поле для вывода текстового файла, который я анализирую для отображения ячеек с путем к носителю (в основном mp4) и фактическим именем файла .mp4. по всему диапазону A:I

Я пытаюсь выполнить перемещение каждой строки в диапазоне, в котором есть ячейка с именем файла .mp4, на другой лист.
Это мой код на данный момент:

Подпрограмма MoveMp4()
'Private Sub Worksheet_Change (ByVal Target As Range) [[при желании используйте это как верхнюю строку для автоматического запуска]]
Dim xRg как диапазон
Dim xCell как диапазон
Дим я пока
Дим Джей До тех пор
Дим К как долго
I = Рабочие листы("Лист1").UsedRange.Rows.Count
J = Рабочие листы("Лист2").UsedRange.Rows.Count
Если J = 1 Тогда
Если Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0, то J = 0
End If
Установить xRg = Worksheets("Лист1").Range("A:I") '[[ДИАПАЗОН, СОДЕРЖАЩИЙ ФАЙЛ.MP4 ИЗМЕНЯЕТСЯ ДИНАМИЧЕСКИ]]
On Error Resume Next
Приложение.ScreenUpdating = False
Для K = 1 To xRg.Count
Если CStr(xRg(K).Value) = ".mp4" Тогда
xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
xRg(K).EntireRow.Delete
Если CStr(xRg(K).Value) = ".mp4" Тогда
К = К - 1
End If
Дж = Дж + 1
End If
Следующая
Application.ScreenUpdating = True
End Sub

Опять же, приведенный выше код работает, если одна ячейка в диапазоне A: I содержит .mp4, но не будет перемещать строку, если перед .mp4 есть символы (как в большинстве имен файлов). ExcelVBAExample2.jpg
Возможно, ему нужно искать ячейки в динамически изменяющемся диапазоне для расширения .mp4, а при обнаружении перемещать всю строку на лист 2. Я знаю, что использовал команду a для поиска строки или определенных символов и работать с ними соответственно, но я не могу вспомнить, что и как я делал.

Извиняюсь за длину поста, но я хотел как можно яснее объяснить, чего я хочу, а не ходить туда-сюда с объяснениями. Я приложил вложение примера того, с чем я работаю.

Я хотел бы сказать, что я адаптировал код из сообщения здесь:

https://www.extendoffice.com/documents/excel/3723-excel-move-row-to-another-sheet-based-on-cell-value.html?page_comment=1

И, наконец, я хотел бы добавить, что вы, люди, оказываете огромную услугу мировому сообществу, спасибо вам от всего сердца, души и разума!
Там нет ответов, сделанные на этот пост пока нет.