2017-07-16 47 views
0

我有一個艱難的時間,試圖找到以下使用宏:宏自動填充基於值的單元格在一個不同的表

考慮考慮這個例子:

enter image description here

考慮一下,我在「表單1」中列出了國家和食品欄以及它的值。

在工作表2中,我有兩列名爲國家#1和食物#1。我想要的宏需要通過下拉列表自動填充與#1單元格中的正確文本相關聯的Food#1單元格。

例如:當我在國家#1中選擇「馬德里」時,它需要自動填充食物#1的文本「塔帕斯和玉米餅」。

對不起,如果這是一個重新發布的問題,但我沒有看到任何關閉,因爲這:|

最好的問候, 路易斯

回答

1

你需要一個表更改事件像下面...

下面的代碼假定您工作表Sheet1上分別有國家名單及其在列A的食物和B國家下拉列表在Sheet2的A列中。

右鍵單擊Sheet2選項卡 - >查看代碼 - >將以下代碼放到打開的代碼窗口中。

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.CountLarge > 1 Then Exit Sub 
Dim wsSource As Worksheet 
Dim r As Long 
Set wsSource = Sheets("Sheet1")  'Source sheet which contains a table of countries and their food 
If Target.Column = 1 And Target.Row > 1 Then 
    If Application.CountIf(wsSource.Columns(1), Target.Value) > 0 Then 
     Application.EnableEvents = False 
     r = Application.Match(Target.Value, wsSource.Columns(1), 0) 
     Target.Offset(0, 1) = wsSource.Cells(r, 2) 
     Application.EnableEvents = True 
    End If 
End If 
End Sub 
+0

對我來說工作得很好。非常感謝你:) –

+0

不客氣Luis!很高興它的工作。 :) – sktneer

+0

我很抱歉打擾你,但這個代碼可以縮放,我可以自動填充多個列?例如,不是隻填寫Sheet2中的食品#1欄,而是填充玩具#1,甜點#1,主要#1和菜餚#1(所有這些已經在Sheet1上,如主要問題中的示例)? –

相關問題