0

我正在尝试自动化计算来自 Unbounce 导出的 csv 的潜在客户所需的操作。我设法创建了一个宏来对具有相同列集的所有表单执行此操作。但是,某些客户端具有不同的表单,并且会在电子表格中生成不同的列集,因此当我将宏应用于这些客户端的电子表格时,会在函数中选择错误的列。

我需要能够按标题名称选择列,这样即使它们不在同一位置,我也可以在右列上应用函数。

在我看来(不是使用 VBA 语法)它会像

if column header = "email" then execute function else search next column header

我找到了这些可能的解决方案 按名称查找列标题并选择列标题下方的所有数据(Excel-VBA)

https://www.extendoffice.com/documents/excel/4879-excel-select-column-by-header-name.html

但我无法分离仅适用于选择列的代码部分,然后让以下函数了解它应该与先前选择的结果一起使用。

我需要正确选择列的功能如下。目标是删除带有标题电子邮件的列中的重复项,从带有标题名称和电子邮件的列中删除测试,然后使用 utm_source = facebook 和 utm_source = instagram 计算潜在客户。

 Range("G6").Select
    ActiveSheet.Range("$A$1:$AA$2130").RemoveDuplicates Columns:=13, Header:= _
        xlYes
    Cells.Select
    Selection.AutoFilter
    Range("M5").Select
    ActiveSheet.Range("$A$1:$AA$2130").AutoFilter Field:=13, Criteria1:= _
        "=*test*", Operator:=xlAnd
    Rows("2:2159").Select
    Selection.Delete Shift:=xlUp
    Range("M2127").Select
    ActiveSheet.Range("$A$1:$AA$2125").AutoFilter Field:=13
    ActiveSheet.Range("$A$1:$AA$2125").AutoFilter Field:=12, Criteria1:= _
        "=*test*", Operator:=xlAnd
    Rows("2:2155").Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("$A$1:$AA$2123").AutoFilter Field:=12
    Range("N8").Select
    Sheets.Add After:=ActiveSheet
    ActiveCell.FormulaR1C1 = "facebook"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = _
        "=COUNTIF('unbounce??'!C[20],""facebook"")+COUNTIF('unbounce??'!C[20],""instagram"")"
4

0 回答 0