Excel VBA - копировать строки сверху вниз, если значение не 0,00 - PullRequest
0 голосов
/ 09 июня 2011

Я пытаюсь создать этот макрос Excel, который в основном копирует все столбцы от A до F в отдельную электронную таблицу. Но только если значение в Dx не равно 0,00. Например, значение в C18 может быть 11 и т. Д., Но значение в D18 может быть 0,00. Если это так, не копируйте эту строку. Можно ли это сделать легко?

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Дайте это попробовать. Вам нужно будет изменить названия рабочих книг и рабочих таблиц в коде:

Sub CopyTest()

Dim fromWB As Workbook
Dim toWB As Workbook
Dim i As Integer

Set fromWB = Application.Workbooks("WBName.xls")
Set toWB = Application.Workbooks("OtherWBName.xls")

For i = 1 To fromWB.Worksheets("WSName").UsedRange.Rows.Count

    If fromWB.Worksheets("WSName").Cells(i, 4) <> "0,00" Then
        fromWB.Worksheets("WSName").Rows(i).Copy
        toWB.Worksheets("OtherWSName").Cells(i, 1).Paste
    End If

Next i

End Sub
1 голос
/ 09 июня 2011

Возможно, вам лучше всего превратить ваш диапазон в таблицу и использовать Автофильтр . Затем вы можете скопировать отфильтрованные строки на другой лист.

Другой вариант - скопировать все в массив, а затем скопировать нужные строки в другой массив, записав его в конце. Я думаю, что это может быть менее эффективным.

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