请问如何用在EXCEL里用VB实现以下功能?
例如我要在EXCEL表格里找到“张三”所在的位置,然后将“男性”填入“张三”的右边一格。求解,谢谢!...
例如我要在EXCEL表格里找到“张三”所在的位置,然后将“男性”填入“张三”的右边一格。求解,谢谢!
展开
1个回答
展开全部
没有附表,从何说起?“男性”是何列? “张三”又是何列? 表一、表二名称呢?
雾里看花,以下是我曾使用的,希望对你有帮助![其实用公式也很方便,简单的不一定要用VBA。如:=VLOOKUP(A2,花名册!A2:B9,2,FALSE)]
Private Sub Worksheet_Change(ByVal Target As Range) '单元格变更启动的程序
c = Target.Column '取变更单元格的列数
r = Target.Row '取变更单元格的行数
v = Target.Value
If r < 2 Then Exit Sub '如果行数小于2退出
Dim rg As Range '定义一个单元格变量
With Worksheets("花名册") '使用“花名册”表
If c = 3 Then '如果变更单元格的列数是3
ed = .[a65536].End(xlUp).Row '找出“花名册”表最后一行的行数
For Each rg In .Range("f5:f" & ed) '在“花名册”表f列第五行至最末行中找与变更单元格相同的值
If rg = Target.Value Then
h = rg.Row '取找到行的行数
'Target.Value = .Range("f" & h) '变更单元格变为“花名册”表找到行的f列
Cells(r, c + 1).Value = .Range("g" & h) '变更单元格所在行g列变为“花名册”表找到行的g列
Cells(r, c + 2).Value = .Range("h" & h) '变更单元格所在行h列变为“花名册”表找到行的h列
Cells(r, c + 3).Value = .Range("i" & h) '变更单元格所在行i列变为“花名册”表找到行的i列
Cells(r, c + 4).Value = "√"
Cells(r, c + 8).Value = .Range("t" & h)
Cells(r, c + 9).Value = .Range("m" & h)
Cells(r, c + 12).Value = .Range("c" & h)
Cells(r, c - 1).Value = .Range("d" & h)
Exit For
End If
Next '第7列变更处理结束
If rg Is Nothing Then If MsgBox("您的输入有误,查找不到," & vbNewLine & Chr(13) & "请核对后再输入!", 64, "提示") Then Exit Sub '如果没找到退出
'r0 = rg.Row
'Do While v <> rg.Value
'Set rg = .Range("f5:f" & ed).FindNext(rg)
'If rg.Row = r0 Then Exit Sub
'Loop
End If
End With '使用“花名册”表结束
End Sub '程序结束
雾里看花,以下是我曾使用的,希望对你有帮助![其实用公式也很方便,简单的不一定要用VBA。如:=VLOOKUP(A2,花名册!A2:B9,2,FALSE)]
Private Sub Worksheet_Change(ByVal Target As Range) '单元格变更启动的程序
c = Target.Column '取变更单元格的列数
r = Target.Row '取变更单元格的行数
v = Target.Value
If r < 2 Then Exit Sub '如果行数小于2退出
Dim rg As Range '定义一个单元格变量
With Worksheets("花名册") '使用“花名册”表
If c = 3 Then '如果变更单元格的列数是3
ed = .[a65536].End(xlUp).Row '找出“花名册”表最后一行的行数
For Each rg In .Range("f5:f" & ed) '在“花名册”表f列第五行至最末行中找与变更单元格相同的值
If rg = Target.Value Then
h = rg.Row '取找到行的行数
'Target.Value = .Range("f" & h) '变更单元格变为“花名册”表找到行的f列
Cells(r, c + 1).Value = .Range("g" & h) '变更单元格所在行g列变为“花名册”表找到行的g列
Cells(r, c + 2).Value = .Range("h" & h) '变更单元格所在行h列变为“花名册”表找到行的h列
Cells(r, c + 3).Value = .Range("i" & h) '变更单元格所在行i列变为“花名册”表找到行的i列
Cells(r, c + 4).Value = "√"
Cells(r, c + 8).Value = .Range("t" & h)
Cells(r, c + 9).Value = .Range("m" & h)
Cells(r, c + 12).Value = .Range("c" & h)
Cells(r, c - 1).Value = .Range("d" & h)
Exit For
End If
Next '第7列变更处理结束
If rg Is Nothing Then If MsgBox("您的输入有误,查找不到," & vbNewLine & Chr(13) & "请核对后再输入!", 64, "提示") Then Exit Sub '如果没找到退出
'r0 = rg.Row
'Do While v <> rg.Value
'Set rg = .Range("f5:f" & ed).FindNext(rg)
'If rg.Row = r0 Then Exit Sub
'Loop
End If
End With '使用“花名册”表结束
End Sub '程序结束
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询