excel某单元格A1输入条件满足条件时A1自动生成数值,若不满足则需要在B1手动输入一个数值?可以实现么?
比如AA对应的是1BB对应的是2如果我输入AA则B1跳出1,如果输入BB则B1跳出2,如果我输入别的比如ZZ,那可以在B1再手动输入数值么?(AABBZZ都是举例的,没有...
比如
AA 对应的是 1
BB 对应的是 2
如果我输入AA 则B1跳出1,如果输入BB则B1跳出2,如果我输入别的比如ZZ,那可以在B1再手动输入数值么?(AA BB ZZ都是举例的 ,没有实际意义)
不报希望~要是谁能解决加分~~加满!
忘记说了,如果满足条件的话B列要锁定住,如果不满足条件的话,那么我需要手动输入,就像2楼说的,如果结果是#N/A,,那我需要手动输入结果。 展开
AA 对应的是 1
BB 对应的是 2
如果我输入AA 则B1跳出1,如果输入BB则B1跳出2,如果我输入别的比如ZZ,那可以在B1再手动输入数值么?(AA BB ZZ都是举例的 ,没有实际意义)
不报希望~要是谁能解决加分~~加满!
忘记说了,如果满足条件的话B列要锁定住,如果不满足条件的话,那么我需要手动输入,就像2楼说的,如果结果是#N/A,,那我需要手动输入结果。 展开
7个回答
2011-01-23 · 知道合伙人软件行家
关注
展开全部
可以实现的的.请点击我的名字看我的联系方式.
详谈后我将会给你一个文件看效果.
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 And .Value = "AA" Then .Value = 1 '只有在A列输入AA,或者BB才能改变数值. 输入AA,显示为1,输入BB显示为2.还可以添加其他的.
If .Column = 1 And .Value = "BB" Then .Value = 2
End With
End Sub
这是VBA代码. 还可以继续添加,这个就不是公式能赶上的了.因为公式判断了需要使用循环引用才能在自身显示结果.否则无法实现本身自己的变化.
我的这个代码,是表示只要你在A列输入AA,及该单元格变成1,输入BB及显示2
再次修改代码.圆满完成楼主要求:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 Then
If .Value = "AA" Then
Worksheets(1).Unprotect "1111" '解除保护
.Offset(0, 1).Value = 1 '在A列输入AA,显示为1
Worksheets(1).Columns(2).Locked = True '锁定B列
Worksheets(1).Protect "1111" '再次保护
ElseIf .Value = "BB" Then
Worksheets(1).Unprotect "1111"
.Offset(0, 1).Value = 2 '输入BB显示为2
Worksheets(1).Columns(2).Locked = True
Worksheets(1).Protect "1111"
Else '不等于AA,BB的话,解除保护,不再锁定B列
Worksheets(1).Unprotect "1111"
Worksheets(1).Columns(2).Locked = False
End If
End If
End With
End Sub
详谈后我将会给你一个文件看效果.
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 And .Value = "AA" Then .Value = 1 '只有在A列输入AA,或者BB才能改变数值. 输入AA,显示为1,输入BB显示为2.还可以添加其他的.
If .Column = 1 And .Value = "BB" Then .Value = 2
End With
End Sub
这是VBA代码. 还可以继续添加,这个就不是公式能赶上的了.因为公式判断了需要使用循环引用才能在自身显示结果.否则无法实现本身自己的变化.
我的这个代码,是表示只要你在A列输入AA,及该单元格变成1,输入BB及显示2
再次修改代码.圆满完成楼主要求:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub '选择多个单元格区域则退出过程
If .Column = 1 Then
If .Value = "AA" Then
Worksheets(1).Unprotect "1111" '解除保护
.Offset(0, 1).Value = 1 '在A列输入AA,显示为1
Worksheets(1).Columns(2).Locked = True '锁定B列
Worksheets(1).Protect "1111" '再次保护
ElseIf .Value = "BB" Then
Worksheets(1).Unprotect "1111"
.Offset(0, 1).Value = 2 '输入BB显示为2
Worksheets(1).Columns(2).Locked = True
Worksheets(1).Protect "1111"
Else '不等于AA,BB的话,解除保护,不再锁定B列
Worksheets(1).Unprotect "1111"
Worksheets(1).Columns(2).Locked = False
End If
End If
End With
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,但需要有一个对照表作为数据源,不然怎么知道该跳出什么呢?
在B1输入公式
=vlookup(a1,{"aa",1;"bb",2;"cc",3},2,0)
如果在A1输入ZZ,不在给定的范围,就会出来结果N/A,手动改一下就行
上面列的对照数据比较简单,如果多了就见一个辅助列,比如放到表2的AB列,把公式的数据区域改为引用
=vlookup(a1,sheet2!a:b,2,0)
在B1输入公式
=vlookup(a1,{"aa",1;"bb",2;"cc",3},2,0)
如果在A1输入ZZ,不在给定的范围,就会出来结果N/A,手动改一下就行
上面列的对照数据比较简单,如果多了就见一个辅助列,比如放到表2的AB列,把公式的数据区域改为引用
=vlookup(a1,sheet2!a:b,2,0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用IF函数可以实现。双层嵌套
在B1单元格输入:=IF(A1="AA",1,IF(A2="BB",2,"请手动输入"))
在B1单元格输入:=IF(A1="AA",1,IF(A2="BB",2,"请手动输入"))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用VBA实现
代码如下
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
Dim T As String
If Target.Column = 1 And Target.Count = 1 Then
R = Target.Row
T = Target.Value
If T = "AA" Then
Cells(R, 2) = 1
ElseIf T = "BB" Then
Cells(R, 2) = 2
End If
End If
End Sub
把代码复制到你要输入的工作表对应编辑框中,当你在A列输入时自动在B列按你的要求生成
或者用以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If .Column = 1 And .Value = "AA" Then Cells(.Row, 2) = 1
If .Column = 1 And .Value = "BB" Then Cells(.Row, 2) = 2
End With
End Sub
代码如下
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R&
Dim T As String
If Target.Column = 1 And Target.Count = 1 Then
R = Target.Row
T = Target.Value
If T = "AA" Then
Cells(R, 2) = 1
ElseIf T = "BB" Then
Cells(R, 2) = 2
End If
End If
End Sub
把代码复制到你要输入的工作表对应编辑框中,当你在A列输入时自动在B列按你的要求生成
或者用以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If .Column = 1 And .Value = "AA" Then Cells(.Row, 2) = 1
If .Column = 1 And .Value = "BB" Then Cells(.Row, 2) = 2
End With
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询