客户数据表上索引匹配的VBA代码-数据扩展

客户数据表上索引匹配的VBA代码-数据扩展,vba,excel,master-data-management,Vba,Excel,Master Data Management,第一次海报初学者/中级vba编码器。我过去曾使用用户表单和输入框来构建财务模型,但与我现在尝试做的完全不同 情况: 我有一个大的主数据文件~25mb excel文件,它使用AFO从SAP BI系统提取客户信息。 列中包含的这些信息包括: Account # (Unique ID) Account Name Street Address Postal Code State Customer Hierarchy Level (CHL) information 1 2 3

第一次海报初学者/中级vba编码器。我过去曾使用用户表单和输入框来构建财务模型,但与我现在尝试做的完全不同

情况: 我有一个大的主数据文件~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代码,它能够根据已经设置的标准执行所有手动操作

我首先从小型开始,尝试创建一个VBA脚本,由userform中的按钮启动(稍后可以想到ui),使用参考表或工作簿(以速度较快的为准)在[Zone]和[District]列中找到下一个空白单元格

下一个想法与其他专栏相同;但是,其他列可能需要多个匹配条件,但让我们先从简单的匹配条件开始。[区域]和[地区]。我从宏中得到了以下语法,但这会减慢工作簿的速度,因为它的容量非常大,比如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