Excel的数据自动填充问题【巨易捞分,快进!】

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:17:27
有基础表格 sheet1:
A B C F… K…
1 系别 学号 姓名 课程名称 成绩
2 信息 0901 李新 多媒体技术 74
3 数控 0902 张磊 应用英语 65
4 经济 0945 郝怡 多媒体技术 86
5 信息 0986 王力 计算机基础 91
……
现要再做一个表,怎样才能只需在sheet2的B列输入所需学号(如:0945)其它A、C、F列则自动填充上经济、郝怡和多媒体技术三项呢?
(要是一个个复制忙到天黑也做不完呃,急招高手救命!)
高手们能不能指导得详细一点啊,我…很笨的!每次都是数值没有,“ #N/A”一堆。

如果不想复制公式,要一劳永逸的方法就只有用VBA了。按以下的步骤做:

在Sheet2工作表标签上按右键,选择“查看代码(V)”

把以下代码贴进打开的窗口里,窗口标题是“Microsoft Visual Basic ...”,然后保存工作簿,关闭Excel,重新打开工作簿,如果提示是否要使用宏,记着选打开。最后在Sheet2的B列里输入学号试试看。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim C As Range, C1 As Range, R As Integer, R1 As Integer

Application.EnableEvents = False '禁止新的事件处理

For Each C In Target.Cells '检查每一个发生改变的单元格

If C.Column = 2 Then '如果发生改变的单元格的列号为2(B列)

Set C1 = Worksheets("Sheet1").Range("B:B").Find(C.Text) '在工作表Sheet1的B列里查找发生变动的单元格里的学号

If Not C1 Is Nothing Then '如果找到了发生变动的单元格里的学号

R = C.Row '取得发生变动的单元格的行号
R1 = C1.Row '取得工作表Sheet1的找到的单元格的行号
Cells(R, 1) = Workshee