请用VBA完成这个表格,谢谢.
请用VBA完成这个表格,谢谢.
Sub analyzing() lastcolumn = [iv3]。End(xlToLeft)。Column - 2 For i = 7 To lastcolumn '做最后分析的数据 Columns(i)。ColumnWidth = 7。
4 Cells(lastrow + 1, i) = Cells(2, i) '得出科目 Cells(lastrow + 2, i) = "=sum(r3c[0]:r" & lastrow & "c[0])" '计算各个科目总分 Cells(lastrow + 5, i) = "=sumproduct(--(r3c[0]:r" & lastrow & "c[0]>0))" '算出有多少人参考 Cells(lastrow + 7, i) = "=max(r3c[0]:r" & lastrow & "c[0])" '算出最高分 Cells(lastrow + 8, i)。
FormulaArray = "=min(if(r3c[0]:r" & lastrow & "c[0]>0,r3c[0]:r" & lastrow & "c[0]))" '用数组公式算出最低分 Cells(lastrow + 3, i) = "=round(r" & lastrow + 2 & "c[0]/r" & lastrow + 5 & "c[0], 2)" '算出平均分 Cells(lastrow + 4, i) = "=round(r" & lastrow + 6 & "c[0]/r" & lastrow + 5 & "c[0], 4)" '算出及格率 Cells(lastrow + 6, i) = "=sumproduct(--(r3c[0]:r" & lastrow & "c[0]>=getdata(r2c[0])))" '算出各科目及格人数 Next Range(Cells(lastrow + 4, 7), Cells(lastrow + 4, 16))。
NumberFormatLocal = "0。00%" End Sub Function getdata(rng As Range) '获取各科目对应的及格分数 arr = Array("语文", "数学", "英语", "政治", "历史", "地理", "物理", "化学", "生物", "文综", "理综", "总分") brr = Array(90, 90, 90, 60, 60, 60, 60, 60, 60, 60, 60, 630) getdata = brr(Application。
Match(rng。Value, arr, 0) - 1) End Function 至于年级排序,不要公式,就用两个小别号,改为注释句,要就去掉别号,搞不懂,年武总分0,也排名"250"位? 这样用函数灵活一点,但也要修改代码中的数组brr()中的值。
你录制宏,然后手动排序,排完停止录制,再到vb编辑器里看,那就是你要的vba代码,这是学习vba的好方法 如果想将这些代码用于其他类似的表,按需求在里面修改修改也就是了
答:选择一行的VBA语句为 Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend 删除一行的VBA...详情>>