2016-03-10 41 views
0

我在工作簿的Sheet3单元中有一个数据验证列表T3。该列表包含位置名称。在我的工作簿的sheet1中,我拥有所有相邻表格中的所有位置的数据,例如获取数据验证列表以填充表格

位置1 |日期|得分|百分比|目标| |位置2 |日期|分数|百分比|目标| etc ....

我期待从下拉列表中选择一个位置,并将在相关表中复制到sheet3。所以你只需选择一个位置并可以看到数据。我想知道是否最好的方式去做这个公式或使用VBA(我使用VBA下拉列表的经验是有限的)。这是我目前正在处理的内容,但目前尚不完整,仍然会导致“在VBA中执行此操作的更快捷方式”。任何帮助或建议非常感谢! (我的验证列表称为List1

= IF(ISNUMBER(A2),IF(ISERROR(VLOOKUP(A2,Sheet1中$ A:$ EG,MATCH(列表1,表Sheet1 $ 1:$!1,0) ,假)),0),“”)

这个想法是,我可以有一个公式表,所以根据列表值,不同的数据会出现。

回答

0

这是不完整的,但它应该让你开始/给你一些想法

Sub CopyTable() 

Dim colNo, lastRow As Integer 
Dim ws1, ws3 As Worksheet 

Set ws1 = Sheets("Sheet1") ' assign the worksheet variables 
Set ws3 = Sheets("Sheet3") 

colNo = Application.Match(ws1.Range("T1"), ws1.Range("A1:R1")) ' work out which column the required table starts in 

lastRow = ws1.Cells(10000, colNo).End(xlUp).Row ' work out the last row of the table 

ws1.Range(ws1.Cells(1, colNo), ws1.Cells(lastRow, colNo + 4)).Copy ws3.Range("A1") ' copy the table 

End Sub 
+0

感谢升压和起点苦艾酒!应该在这方面做一些工作,并得到结果:) – IIJHFII