将数据连接设置为多个工作表

时间:2018-02-17 10:38:45

标签: excel-vba data-connections vba excel

我有工资单文件,我需要使用数据连接链接到不同工作簿中可用的输入。所有这些输入将以表格形式显示在不同的工资单中。

通过这些连接,工资核算流程将完成而不会出现任何错误:每个月,工资核算流程应该只改变输入文件路径&创建与每个输入表的新连接,以准备新的工资单文件。

这是我的月度任务,比处理工资单需要更多的时间。

我录制了这个宏,只适用于一张纸的数据连接。我有超过20张数据要与不同的工作表名称连接,以完成工资核算流程。

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
    "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;" & _
    "Data Source=C:\Users\vinod.k\Desktop\Test Connection\Salary Details-Jan-18.xlsx;" & _
    "Mode=Share Deny Write;Extended Properties=""HDR=YES;"";" & _
    "Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" & _
    "Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;" & _
    "Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;" & _
    "Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";" & _
    "Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;" & _
    "Jet OLEDB:Don't Copy Locale on Compact=False;" & _
    "Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;" & _
    "Jet OLEDB:Support Complex Data=False;" & _
    "Jet OLEDB:Bypass UserInfo Validation=False"), Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("Salary$")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = "C:\Users\vinod.k\Desktop\Test Connection\Salary Details-Jan-18.xlsx"
        .ListObject.DisplayName = "Table_Salary_Details_Jan_18"
        .Refresh BackgroundQuery:=False
End With

我想最小化数据连接过程。

0 个答案:

没有答案