我正在尝试自动化计算来自 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"")"