将具有匹配列的6个工作簿中的数据复制到单个工作簿

我有6个不同的工作簿,每个工作簿至less3张。 我想要一个VBA代码来自动生成主工作簿与来自othes的匹配列。

工作手册1 – “基准”

hstname Loc Dept User logID HstIP MACAddr OS abcghj jay aa abc 1 2 1.2.3. 7 sgtsx jay ss sgt 2 3 4.56.8 8 wrgyr jay dd wrg 3 4 5.6.7 8 dfhbnj jay tt gdxvg 4 8 3.4.5.6.7 7 

练习册2 – “Daily1”

  hstname OnlineStatus result abcghj scan yes sgtsx scan yes wrgyr scan yes dfhbnj, scan yes sdrgswdeg scan no fhawrtu65 scan no 

练习册2-“Daily2”

  hstname OnlineStatus result abcghj scan yes sgtsx scan yes wrgyr scan yes dfhbnj, scan yes sdrgswdeg scan no 

而每天的工作簿3,每日4,每日5将具有与每日1和每日2相同的列。

我已经填好了大师作为一个例子,了解我的要求到底是什么。 注意:在我的主表中,从“基线”工作簿中获取列ID,hstname,用户,dept,loc,mac地址。 如果hstname列匹配“基准”和“每日1”工作簿,则将daily1工作簿的“结果”列复制到主工作簿的“每日1”列。 每日2,3,4和5重复相同的操作。 另外请注意,不应有任何重复的值(Master中重复的hstnames)。

MASTER表格

  ID hstname daily1 daily2 daily3 d4 d5 User Dept Loc MACAddr 1 abcghj yes yes yes abc aa jay 1.2.3. 2 sgtsx notscan no no sgt ss jay 4.56.8 6 wrgyr yes yes no wrg dd jay 5.6.7 4 dfhbnj, yes notscan no gdxvg tt jay 3.4.5.6.7 8 24dvg5t no yes yes xb ff jay 9.8.56 

尝试使用此代码。 但它完全不起作用。

  Sub LoopThroughDirectory() Dim MyFile As String Dim erow Dim Filepath As String Filepath = "D:\examp\" MyFile = Dir(Filepath) Do While Len(MyFile) > 0 If MyFile = "master.xlsx" Then Exit Sub End If Workbooks.Open (Filepath & MyFile) Range("A2:D2").Copy ActiveWorkbook.Close erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, 1), Cells(erow, 4)) MyFile = Dir Loop End Sub 

如果您从未使用过VBA,则可以尝试打开macros录制器,然后发现其function。 老实说,这是我们大多数人开始使用VBA的方式。 一些很好的网站是Ozgrid或Excel先生。 我们检查的一些代码将有助于您朝正确的方向发展。