gpt4 book ai didi

excel - VBA Excel-如何根据三列删除重复项

转载 作者:行者123 更新时间:2023-12-05 00:37:31 24 4
gpt4 key购买 nike

我想根据excel表格中的三列删除重复的行。
当我将列作为直接值传递给数组时,例如示例列 1、61 和 122,它可以正常工作,如下面的代码所示:
cur.Range("data[#All]").RemoveDuplicates Columns:=Array(1, 61, 122), Header:=xlYes
但是,当我尝试通过在标题中查找列号来动态传递数组中的列值时,它既不会引发任何错误,也不会删除重复项
下面的代码是传递列的动态代码
Set employeeCell = cur.Range("1:1").Find(What:="employee id")
Set customerCell = cur.Range("1:1").Find(What:="customer")
Set dateCell = cur.Range("1:1").Find(What:="date")

cur.Range("data[#All]").RemoveDuplicates Columns:=Array(employeecell.column,customercell.column, datecell.column), Header:=xlYes

请帮助解决这个问题。我想通过查找它们各自的列号来动态删除基于三列的重复项。

最佳答案

尝试使用 ListColumn.Index 每列的:

Dim dataTable as ListObject
Set dataTable = cur.ListObjects("data")

Dim employeeIndex as Long
employeeIndex = dataTable.ListColumns("employee id").Index

Dim customerIndex as Long
customerIndex = dataTable.ListColumns("customer").Index

Dim dateIndex as Long
dateIndex = dataTable.ListColumns("date").Index

dataTable.Range.RemoveDuplicates Columns:=Array(employeeIndex, customerIndex, dateIndex), _
Header:=xlYes

关于excel - VBA Excel-如何根据三列删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com