Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA副本ID';如果不匹配,则从一个工作表中删除_Vba_Copy_Find_Match_No Duplicates - Fatal编程技术网

VBA副本ID';如果不匹配,则从一个工作表中删除

VBA副本ID';如果不匹配,则从一个工作表中删除,vba,copy,find,match,no-duplicates,Vba,Copy,Find,Match,No Duplicates,我没有10的声誉,所以我无法上传图片,这将使这更容易解释。。。我在Excel先生论坛上发布了一个表格示例: 我有两张工作表。我需要在“Sheet2”中找到与“Sheet1”中的员工ID匹配的员工ID。如果“Sheet2”的ID不在“Sheet1”中,则我需要将所述“Sheet2”行中的特定单元格复制到“Sheet1”中 最重要的是,在复制时,我需要确保为复制的单元格插入一整行,以便之前的$amounts位于正确的位置(参见Excel先生的帖子)。这可能毫无意义。要是我能上传一张照片就好了 Opt

我没有10的声誉,所以我无法上传图片,这将使这更容易解释。。。我在Excel先生论坛上发布了一个表格示例:

我有两张工作表。我需要在“Sheet2”中找到与“Sheet1”中的员工ID匹配的员工ID。如果“Sheet2”的ID不在“Sheet1”中,则我需要将所述“Sheet2”行中的特定单元格复制到“Sheet1”中

最重要的是,在复制时,我需要确保为复制的单元格插入一整行,以便之前的$amounts位于正确的位置(参见Excel先生的帖子)。这可能毫无意义。要是我能上传一张照片就好了

Option Explicit

Sub CopyNonMatches()

Dim ws1 As Worksheet, ws2 As Worksheet
Dim ws1Range As Range, ws2range As Range
Dim ws1Long As Long, ws2long As Long

Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")

With ws1
ws1Long = .Range("C" & .Rows.Count).End(xlUp).Row
End With

Set ws1Range = ws1.Range("C3", "C" & ws1Long)

With ws2
ws2long = .Range("C" & .Rows.Count).End(xlUp).Row
End With

Set ws2range = ws2.Range("C3", "C" & ws2long)

'Now I need to compare the ranges 'ws1Range' with 'ws2Range' and if 'ws2Range' has ID's that...
'...are not included in 'ws1Range', then I need to copy over info from Columns A to C from the row that had no match over to 'Sheet1'.

???????????????????

End Sub
子副本不匹配()

端接头

Dim ws1 As Worksheet, ws2 As Worksheet
Dim vIDs1 As Variant, vData As Variant
Dim i As Long

Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")

vIDs1 = ws1.Range("C2", ws1.Range("C" & Rows.Count).End(xlUp)).Value
vData = ws2.Range("A2", ws2.Range("C" & Rows.Count).End(xlUp)).Value

For i = 1 To UBound(vData, 1)
    If IsError(Application.Match(vData(i, 3), vIDs1, 0)) Then
        ws1.Rows(8).Insert
        ws1.Range("A8:C8").Value = Array(vData(i, 1), vData(i, 2), vData(i, 3))
    End If
Next i