VBA Copy-Paste Согласно условию - PullRequest
0 голосов
/ 08 мая 2018

Я хотел бы скопировать и вставить значения, которые на другой лист, который является значением счетчика.Я имею в виду:

Мое первое имя листа - Журнал незавершенного производства, а Второе имя листа - POCOM-Main.Я хотел бы скопировать значения в главном листе POCOM в диапазоне (A2: A1000) на лист ожидания продукта, если значение диапазона (K2: K1000) равно нулю в столбце POCOM-Main K. Я хочу вставить значение в последнийпустая строка в диапазоне ведомостей продуктов (A2: A1000).

1 Ответ

0 голосов
/ 08 мая 2018

Что-то вроде ниже, может быть? где «ws» - лист, из которого берутся данные, а «sh» - лист, на который собираются данные. Обратите внимание, что в качестве чисел используются нули.

Sub test()
Dim nc As Long, a, b, ws As Worksheet, sh As Worksheet
Set ws = ThisWorkbook.Sheets(1)
Set sh = ThisWorkbook.Sheets(2)

nc = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlValues, _ 
SearchOrder:=xlByColumns, _
            SearchDirection:=xlPrevious, SearchFormat:=False).Column + 1
a = ws.Range("K1", Range("K" & Rows.Count).End(xlUp)).Value
 ReDim b(1 To UBound(a), 1 To 1)
 For i = 2 To UBound(a)

If a(i, 1) <> 0 Then b(i, 1) = 1
Next i
Application.ScreenUpdating = False
With ws.Range("A1").Resize(UBound(a), nc)
.Columns(nc).Value = b

On Error Resume Next
.Columns(nc).SpecialCells(xlConstants).EntireRow.Copy
On Error GoTo 0
End With

sh.Range("A" & sh.Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...