2016-03-10 43 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