VBA复制粘贴根据条件

时间:2018-05-08 12:49:36

标签: vba excel-vba excel

我想将值复制并粘贴到另一张countif值为的表格中。我的意思是;

我的第一个工作表名称是Product Backlog,Second SheetName是POCOM-Main。如果POCOM-Main K列中的Range(K2:K1000)值为零,我想将Range(A2:A1000)列中的POCOM-Main Sheet中的值复制到Product Backlog表。我想将值粘贴到最后产品积压工作表范围(A2:A1000)中的空行。

1 个答案:

答案 0 :(得分:0)

下面的东西可能会怎么样?其中“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