我正在尝试根据用户输入单元格的内容创建公式语句。如果用户输入0
,1
或2
,则需要更改THE SAME单元格的值。例如:
如果用户在单元格E2中输入“1”,则需要更改为“2500” 如果用户在单元格E2中输入“0”,则需要保持0 如果用户在单元格E2中输入“2”,则需要更改为“5000”
这有可能实现吗?
如果是这样,有什么公式是必要的?
我没有运气尝试过不同的方法,因为我不断得到循环循环错误。这是否意味着这是不可能的?
可能与VBA?
答案 0 :(得分:1)
例如:
=VLOOKUP(A8,$C$1:$D$3,2,0)
A9中的将根据一个小的查找表以蓝色响应触发值,如框中所示。
通过验证,在A1,数据,数据验证,数据验证...,设置,允许列表,来源0,2500,5000
确定。这将创建一个小的下拉箭头,当点击它时会打开一个小窗口,从中只能选择三个指定值中的一个。
答案 1 :(得分:1)
您必须使用某些VBA攻击此问题;特别是Worksheet_Change事件宏。如果使用值过度键入公式,则公式无法重写它们所在的单元格。
右键单击工作表的名称标签,然后选择查看代码。当VBE打开时,将以下内容粘贴到工作表代码窗格中,标题为 Book1 - Sheet1(Code)。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
With Range("E2")
Select Case .Value2
Case 0
'do nothing
Case 1
.Value = 2500
Case 2
.Value = 5000
Case Else
'possibly clear the cell contents as undesirable
'.ClearContents
End Select
End With
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
我留下了一个注释代码行,以删除任何不是 0,1 或 2 的条目。如果这是首选行为,请取消注释。
点击 Alt + Q 返回工作表。在E2中键入三个值中的任何一个都应该具有所需的结果。
请注意Application.EnableEvents property暂时关闭。这是因为您正在更改工作表上的值,并希望避免启动另一个尝试让例程自行运行的事件。