Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Excel 动态搜索ListObjects之间缺少的值_Excel_Vba - Fatal编程技术网

Excel 动态搜索ListObjects之间缺少的值

Excel 动态搜索ListObjects之间缺少的值,excel,vba,Excel,Vba,我想遍历Table1的一列,如果Table2的相同列名中缺少该值,则将其插入Table2的末尾。 下面的代码插入表1中的精确行数,但只插入最后一行的值 e、 g.表1: 列名 价值1 价值2 价值3 价值4 试试这个。根据注释,假设您首先向第二个表中添加了一行,然后将值插入该列的底行 有一本很好的桌子指南 另一种方法依赖于表的自动扩展能力。不过,我还是同意@SJR的回答 Option Explicit Public Sub FindingMissingValues() Dim Sour

我想遍历Table1的一列,如果Table2的相同列名中缺少该值,则将其插入Table2的末尾。 下面的代码插入表1中的精确行数,但只插入最后一行的值

e、 g.表1:

列名 价值1 价值2 价值3 价值4
试试这个。根据注释,假设您首先向第二个表中添加了一行,然后将值插入该列的底行

有一本很好的桌子指南


另一种方法依赖于表的自动扩展能力。不过,我还是同意@SJR的回答

Option Explicit

Public Sub FindingMissingValues()
    Dim SourceTable As ListObject
    Dim TargetTable As ListObject
    Dim rngDataCell As Range
    Dim LastRow As Range
    
    Set SourceTable = Sheet1.ListObjects("Table1")
    Set TargetTable = Sheet2.ListObjects("Table2")
       
    For Each rngDataCell In SourceTable.ListColumns("Column Name").DataBodyRange.Rows
        If TargetTable.ListColumns("Column Name").DataBodyRange.Find(rngDataCell.Value, _
        , , xlWhole) Is Nothing Then
            
            Set LastRow = TargetTable.ListRows(TargetTable.ListRows.Count).Range
            
            TargetTable.ListColumns("Column Name").DataBodyRange.Cells(LastRow.Row + 1 _
            - TargetTable.HeaderRowRange.Row).Value = rngDataCell.Value
        End If
    Next rngDataCell
End Sub

我想您必须首先在第二个表中添加一行,然后在列的最后一行中添加值。
Option Explicit

Public Sub FindingMissingValues()
    Dim SourceTable As ListObject
    Dim TargetTable As ListObject
    Dim rngDataCell As Range
    Dim LastRow As Range
    
    Set SourceTable = Sheet1.ListObjects("Table1")
    Set TargetTable = Sheet2.ListObjects("Table2")
       
    For Each rngDataCell In SourceTable.ListColumns("Column Name").DataBodyRange.Rows
        If TargetTable.ListColumns("Column Name").DataBodyRange.Find(rngDataCell.Value, _
        , , xlWhole) Is Nothing Then
            
            Set LastRow = TargetTable.ListRows(TargetTable.ListRows.Count).Range
            
            TargetTable.ListColumns("Column Name").DataBodyRange.Cells(LastRow.Row + 1 _
            - TargetTable.HeaderRowRange.Row).Value = rngDataCell.Value
        End If
    Next rngDataCell
End Sub