客户数据表中的索引匹配VBA代码 – 数据丰富

第一次海报初学者/中级vba编码器。 我过去使用过用户表单和input框来构build财务模型,但是现在我没有做什么。

情况:我有一个大的主数据文件〜25MB的Excel文件,它使用AFO从SAP BI系统中提取客户信息。 列中包含的这些信息是:

Account # (Unique ID) Account Name Street Address Postal Code State Customer Hierarchy Level (CHL) information 1 2 3 4 5 

然后在右边,我已经手动操作了依赖于其他工作表的单元格来获取正确的值。

主要栏目包括:

 Zone District Group Sub-group Buying Consortium Local/ND Buying Consortium # Buying Consortium GROUP Buying Consortium Sub-GROUP NEW Buying Consortium # Joined Buying Consortium Left Buying Consortium 

现在,这个Excel表格的目的是在客户层面做出更快的更改以反映报告。 我正在拼命寻找简洁快捷的VBA代码,能够根据已经设定的标准执行所有手动操作。

我首先从小的方面开始,尝试创build一个VBA脚本,由用户窗体中的button(稍后可以考虑ui)启动,它将使用参考表或工作簿在[Zone]和[District]列中find下一个空白单元格(以较快者为准)。

下一个想法对于其他专栏将是相同的。 然而,其他列可能需要多个MATCH标准,但首先从简单的标准开始。 [区域]和[区域]。 我有一个macros的下面的语法,但这会减慢它的工作簿像20mb的巨大。

 Sub Zone_District() ' ' Zone_District Macro ' Index Match Zone and District Based on Postal Code ' ' ActiveCell.FormulaR1C1 = _ "=IFERROR(INDEX('MD ZIP 2017'!$F:$F,MATCH(Forum!$I2,'MD ZIP 2017'!$C:$C,0)),""Not Assigned"")" Range("AD2").Select Selection.NumberFormat = "General" ActiveCell.FormulaR1C1 = _ "=IFERROR(INDEX('MD ZIP 2017'!C6,MATCH(Forum!RC9,'MD ZIP 2017'!C3,0)),""Not Assigned"")" Range("AD2").Select Selection.AutoFill Destination:=Range("AD2:AE2"), Type:=xlFillDefault Range("AD2:AE2").Select Range("AE2").Select ActiveCell.FormulaR1C1 = _ "=IFERROR(INDEX('MD ZIP 2017'!C7,MATCH(Forum!RC9,'MD ZIP 2017'!C3,0)),""Not Assigned"")" Range("AD2:AE2").Select Selection.AutoFill Destination:=Range("AD2:AE5"), Type:=xlFillDefault Range("AD2:AE5").Select End Sub