У меня есть таблица, полная данных. И столбец K в каждой строке содержит число. Поэтому в основном то, что я пытаюсь сделать, - это перемещение всей строки, если данные в этом столбце больше 9, до листа2.Excel Vba - Копировать строку, если значение в ячейке больше
Как это можно достичь? Я уже создал фактические таблицы в листах, называемые Table1 и Table2.
Это то, что мне удалось собрать до сих пор. Я посмотрел на автофильтр, но я не могу понять, что происходит там. Так вот я и получаю!
Sub MoveData()
Dim i As Range
Dim num As Integer
num = 1
For Each i In Range("K10:K1000")
If i.Value > 9 Then
i.Select
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
Sheets("Sheet2").Range("A65000").End(xlUp).Offset(num, 0).PasteSpecial
ActiveCell.Rows.Delete
num = num + 1
End If
Next i
End Sub
Этот вид работает до сих пор. Но мне не удастся вставить строку в следующую пустую строку в sheet2. Я попытался сделать это num = num + 1 вещь, но я думаю, что это далеко?
Это легко. Что вы пробовали до сих пор? Если вы ничего не пробовали, вы можете посмотреть '.Autofilter', а затем перемещать отфильтрованные строки с помощью' .Offset() '? –
И вот что я имею в виду :) http://stackoverflow.com/questions/10050946/selecting-columns-that-have-values-in-excel-macro-range-object-in-vba Если вы все еще застряли, отправьте обратно код, который вы попробовали, и мы примем его форму там :) –
Я посмотрел на этот код, и я не понимаю, что происходит. Я попытался отредактировать его, но я получаю эту ошибку «Ошибка метода AutoFilter класса Range» в строке «.AutoFilter Field: = 1, Criteria1: =" <> "". Теперь материал, который я собрал выше, - это, вероятно, трудный способ сделать это. –