2017-01-03 82 views
0

我以下拉菜單的形式創建了一個圖例並將其放置在一個單元格中。 基於用戶選擇,是否可以在與下拉菜單相同的單元格中顯示一個數字?根據下拉菜單選擇顯示一個數字

下拉菜單:「10 - 優秀」

我想要的單元格以顯示「10」

我知道我可以使用IF語句實現這一點,但我所寫的那個會很長因爲我有很多選擇和很多細胞。

感謝, 安娜

回答

0

我不認爲這是一個建在從下拉列表中選擇一個值的方式(我假設你使用的數據驗證功能,並且選擇了值的列表或 指出,值列表),並根據選定的值對單元值進行變換。

我會指出幾個選項。

選項1 旁邊有下拉列中你只需後剝離出 文本部分的列 - 像例如式= MID(A1,如圖1所示,FIND(「 - 」,A1) - 1) 假設列A是你的下拉值。 當然,你會結束了兩列

enter image description here

選項2 使用Visual Basic

在你的數據驗證,如果輸入無效值不啓用的錯誤消息。然後使用Visual Basic代碼

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 

    If (Target.Column = 1) Then 
     Target.Value = Mid(Target.Value, 1, InStr(1, Target.Value, "-") - 1) 
    End If 
    Application.EnableEvents = True 

End Sub 
+0

謝謝你的迴應!備選方案2更有利。我對VBA編碼比較陌生。什麼是target.Column = 1呢?它是否以目標表中的第一列爲目標?我可以將其更改爲我需要的列嗎?同樣,Target.value是做什麼的?再次感謝! –

+0

目標是更改的範圍。在我的示例中,列A是dropdopwn值。您可以根據列的位置進行調整。 VB代碼也沒有生產準備好,您需要修復代碼以進行錯誤處理等。 如果Target是範圍對象,則Target.Value是範圍的值。 你的情況下的範圍只是一個單元格(你可能想要確保該範圍不包含多於1個單元格),但是Target.Value是單元格值,它是用戶選擇的下拉值。更改事件在單元格值更改時觸發,並調整該值並再次啓用事件 – dgorti

相關問題