如果条件不相等,如何使用VBA Excel将其余的唯一值放在数组中

佛陀

到目前为止,我有两个不同的唯一值(X,Y)。如果条件x<>y不相等,我想将其余的唯一值放入数组中,并需要创建一个带有数组值(其余唯一值)的工作簿。

前任:

X               Y
SAP           Siemens
Siemens       otto
Otto          Allianz AG
Accenture     Oracle
Oracle        Capgemini
TCS           Daimler
Infosys       Akka

我已经有工作簿,例如“ Siemens.xlsx”,“ Oracle.xlsx”,“ Otto.xlsx”。现在,我需要数组中Y列的其余唯一值。我的预期结果应该是“ Akka.xlsx”,“ Allainz AG。xlsx”,“ Daimler.xlsx”。

代码:

Sub array()

    Dim y as range
    Dim c as integer
    Dim Lastrow_Y As Integer
    Dim Lastrow_X As Integer
    Dim rngFilter_Y as range
    Dim rngCopy as range
    Dim NewBook as workbook

    With Master_workbook.Worksheets("FBI")
            Sheets("FBI").Columns("C:C").AdvancedFilter Action:=xlFilterCopy, _
             CopyToRange:=.Range("AZ1"), Unique:=True
             Lastrow_Y = .Cells(.Rows.Count, "AY").End(xlUp).Row
   End with

   With Master_workbook.Worksheets("WWF")
            Sheets("WWF").Columns("d:d").AdvancedFilter Action:=xlFilterCopy, _
             CopyToRange:=.Range("AY1"), Unique:=True
             Lastrow_X = .Cells(.Rows.Count, "AY").End(xlUp).Row
   End with

    For c = 2 To Lastrow_Y
                    Set y = Master_workbook.Sheets("FBI").Range("AZ" & c)
                    Set x = Master_workbook.Sheets("WWF").Range("AY" & c) 
                        If x = y Then
                        set NewBook = workbooks.add
                            with NewBook 
                              .Title = y    NewBook.Worksheets.Add(After:=.Sheets(.Sheets.Count)).Name = "www"
                             With rngFilter_Y

                                    .AutoFilter field:=32, Criteria1:="<>(a)  0 - 360", Operator:=xlFilterValues
                                    .AutoFilter field:=37, Criteria1:=y.Value, Operator:=xlFilterValues

                                    Set rngCopy = .SpecialCells(xlCellTypeVisible)
                                                        .AutoFilter ' Switch off AutoFilter
                             End With
                        .SaveAs Filename:= Y & ".xlsx"

                         rngCopy.Copy NewBook.Worksheets("www").Cells(1, 1)

                        Else
                        End If
       Next    

    End sub

如果有人帮助我,我将不胜感激。

戴夫

在我看来,检查当前文件夹中已创建的文件会容易得多,然后仅创建Y范围中尚不存在的文件?

Option Explicit

Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim folder : Set folder = fso.GetFolder(<path to your .xlsx files here>)
Dim file, fileNames, lastRowY, row, checkFile, newBook
For Each file in folder.Files
    If Right(file.Name, 4) = "xlsx" Then
        fileNames = fileNames & file.Name & ";"         ' will give a list of all filenames
    End If
Next

With Master_workbook.Worksheets("FBI")
       lastRowY = .Cells(.Rows.Count, "AY").End(xlUp).Row
End With

For row = 2 to lastRowY
    checkFile = Master_workbook.Worksheets("FBI").Range("AY").Value
    If Instr(fileNames, checkFile) = 0 Then
       Set newBook = Workbooks.Add
       ' do whatever with newBook
       newBook.SaveAs (checkFile & ".xlsx")
       newBook.Close
    End If
Next

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel VBA如果不相等则无法正常工作

如何比较 SQL Server 2016 中的两列,如果不相等,根据条件将它们设置为相等?

Excel条件格式:突出显示单元格(如果不相等)

在Yii中添加相等和不相等的条件

如何根据python中的条件将数组拆分为不相等的部分?

如何在SQL Server中一起使用相等和不相等

如果在pl sql中不相等,则使用Decode()

如何检查列表中的值不相等

如何使用 Linq lambda 表达式在两个列表之间获得相等和不相等的值

如何在数组中提取一个值并将其余值留在 Laravel 中

如何表达两个值彼此不相等?

如果某些列值不相等,如何比较两个数据网格项并更改特定行背景

如何在Angular中过滤嵌套对象不相等?

如果两个整数相等,如何编码一个函数来打印“等于”,如果不相等,它将什么都不打印?

值在应该相等时不相等

仅当值不相等时,如何使用 SQL 更新一列的字段值以匹配不同列的字段值?

单个sql查询中相同字段的相等,不相等条件

如果一列值相等而另一列不相等,则忽略 SQL 中的一行

如何合并列表中具有相等值的字典并串联不相等的值?

如何使用jQuery在数组中设置唯一值

在Excel中匹配不相等的列

比较两个 Excel 工作簿:VBA 数组不相等

如何在数组中找到唯一值并将其分配给ruby中的变量

两个值如何相等但又不相等?

如何在数组中获取唯一值

如何在数组中查找唯一值

VBA中的时间比较:同一时间不相等

如果'x在clojure中求值为(var x),为什么它们不相等?

如何使用MS Access SQL设置不相等条件?