这根本就不用VBA:
给你一个办法:
在你的sheet2表中点“插入”,名称,定义,
弹出的窗口中,第一行是名称名,随便你输入,如,AA
最下边一行引用位置输入=evaluate(VLOOKUP(A2,Sheet1!A:B,2,0))
确定。
你在你要放置公式结果的位置如B2单元格内直接输入:=AA并向下拖动填充。
这样sheet2中的B列就会根据A列中的学号到sheet1中去选择合适的成绩计算公式,然后再根据公式在当前的sheet2表中去找到成绩的计算单元格,算出总成绩。
如,你的学号是3,则成绩的计算公式是E2+F2+S2 则这个单元格内显示的是sheet2表中E2+F2+S2 这三个单元格内数据的和。
咳!你好:
这道题好像你有问过,仍按那个函数操作就行:
在Sheet2中的B1输入
=IF(A1<>"",VLOOKUP(A1,Sheet1!$A$1:$B$100,2,FALSE),"") ,然后向下填充。
http://zhidao.baidu.com/question/79612953.html
你说Sheet1“第二列叫成绩计算公式”,如B1是C1+D1+E1,以上函数中的“2”就是显示Sheet1中的“第二列叫成绩计算公式”。
当Sheet1中A1是1、B1输入C1+D1+E1,Sheet2中的B2就显示C1+D1+E1;
当Sheet1中A1是1、B1输入=C1+D1+E1,Sheet2中的B2就=Sheet1中B1公式C1+D1+E1的值。
话外,你写的C1、D1不是单元格地址,而是代表某一科的成绩吧?
补充:
你的第1行是输入“学号 成绩计算公式”和“学好 公式 成绩1 成绩2 成绩3 成绩5 ”吧?
那么上面函数里把B1、A1等引用“第1行”地址改为“第2行”,并在B2输入函数。
我个人也认为可以用VLOOKUP解决这个问题,
不过既然楼主想要VBA解决,
我就提供一个,因为我做的一个VBA中用到类似的功能
Dim AX As Long
Dim BX As Long
BX = 1
Do Until BX = 65536
For AX = 1 To 65536
If Sheets(2).Cells(BX, 1).Value = Sheets(1).Cells(AX, 1).Value Then
Sheets(2).Cells(BX, 2).Value = Sheets(1).Cells(AX, 2).Value
End If
Next
BX = BX + 1
Loop
不用vba吧?没记错的话可以用VLOOKUP函数,很简单,看一下说明就好。。。
你可以去看看excel宏录制 记录操作