您可以在不使用VBA的情況下執行此操作。在現場你想粘貼到輸入公式名稱列表:
=IF(ISBLANK(<address of dropdown on Sheet1>),"",INDEX(<address of list to left of values on Sheet2>,MATCH(<address of dropdown on Sheet1>,<address of dropdown values on Sheet2>,0)))
時,從下拉列表中選擇任何內容,並且在選擇的值將顯示名稱的相應列表這將是空白。
例如,如果在下拉是在Sheet 1上B1,下拉值在B1:B9 Sheet 2上,和名稱的對應的列表是在A1:Sheet 2上A9,將使用以下公式:
=IF(ISBLANK(Sheet1!B1),"",INDEX(Sheet2!A1:A9,MATCH(Sheet1!B1,Sheet2!B1:B9,0)))
編輯(每條評論): 要在VBA中使用它,您需要執行類似於@chris neilsen建議的操作。在工作表中,您將需要創建一個子一變事件:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1")) Is Nothing Then
Range("A1").Formula = "=INDEX(Sheet2!A1:A9,MATCH(Sheet1!B1,Sheet2!B1:B9,0))"
If IsError(Range("A1").Value) Then
Range("A1") = ""
Else
Range("A1").Value = Range("A1")
End If
End If
End Sub
爲了消除任何混亂,A1是將顯示輸出單元。
簽名被刪除,請參見常見問題解答。 – 2011-12-28 04:09:41
我需要在VBA中這樣做,因爲要粘貼值的單元格不應該包含任何公式,因爲單元格大部分時間都會被用戶覆蓋。 – Stowoda 2012-01-02 15:08:33