如何在excel表格中,把某一区域内所有不及格学生的名字都提取到另外指定的单元格里
发布网友
发布时间:2022-04-23 16:16
我来回答
共2个回答
热心网友
时间:2023-10-09 06:02
写了个代码
使用方法,首先【选中】学生和成绩区域,比如图中的A5:D14(有多少,选多少)
然后执行代码
会在选中区域的下面5行开始,生成需要的名单
Sub n()
x1 = Selection(1).Row
y1 = Selection(1).Column
x2 = Selection(Selection.Count).Row
y2 = Selection(Selection.Count).Column
For i = y1 + 1 To y2 Step 2
For j = x1 To x2
If Cells(j, i) <> "" And Cells(j, i) < 60 Then
o = o & Cells(j, i - 1) & "、"
End If
Next j
k = k + 1
Cells(x2 + k + 5, y1) = Cells(x1 - 2, i - 1)
Cells(x2 + k + 5, y1 + 1) = Left(o, Len(o) - 1)
o = ""
Next i
End Sub追问先谢谢你!
很不好意思,能不能把行代码的意思说一下,我想学习一下。另外怎样执行代码?
追答执行代码:Alt+F11进入VBA编辑界面,选择并双击左侧的数据所在的工作表(一般是sheet1),然后在中间空白处,粘贴上上述代码,关闭这个界面,返回工作表,Alt+F8,在弹出的新界面中选择并双击sheet1.m,就行了
代码意思:
x1=选择区域最左侧的行号
Y1=选择区域的最上方列号
x2=选择区域最右侧的行号
Y1=选择区域的最下方列号
i是依次循环的列,分别是Y1+1到Y2,中间跳1
j是以此循环的行,从x1循环到x2
如果单元格(成绩)空,并且<60
那么单元格内容与”、”合并成新的一个字符串
返回重新循环
当一列循环结束,
将o的值写入新的单元格中
并且清空o
继续下一列的循环
热心网友
时间:2023-10-09 06:03
这个要求用公式应该很难吧,建议用VBA写宏代码。
不过图片上连个很列标都没有。