统计VBA学习小组正式组第十课(第十二讲)的积分帖之作业上交贴(第13周)
说明:统计帖每个学员只能跟帖回复一次,也就是在原来回复楼层的基础上点编缉,不要一个链接一层楼,否则不计算积分。
各小组学员上交作业时,一定要点击“我要参加”,并注明自己的新组编号和论坛ID,如果点击过“我要参加”但没有跟帖提交作业的,扣该学员5积分;如果跟帖提交了作业,但没有点“我要参加”的,不给予评分。
请各学员看清上面的说明,免得被扣了分分!
本帖为仅楼主可见帖,直接回复即可!
第十课(第12讲)作业链接:
本次有作业吗?{:101:} Sub dd()
Dim rg As Range, x As Integer
For x = 2 To 11
If Cells(x, 4) > 20 Then
If rg Is Nothing Then
Set rg = Rows(x)
Else
Set rg = Union(rg, Rows(x))
End If
End If
Next x
rg.Select
End Sub
Sub dd2()
Dim sr As String, x As Integer
For x = 2 To 11
If Cells(x, 4) > 20 Then
If sr = "" Then
sr = x & ":" & x
Else
sr = sr & "," & x & ":" & x
End If
End If
Next x
Range(sr).Select
End Sub
Sub dd3()
Dim sr As String, x As Integer, kAs Integer
For x = 2 To 11
k = x
If Cells(x, 4) > 20 Then
Do While Cells(x, 4) > 20
x = x + 1
Loop
sr = sr & k & ":" & x - 1 & ","
End If
Next x
sr = Left(sr, Len(sr) - 1)
Range(sr).Select
End Sub
Sub 选取大于二十所在的行()
Dim rg As Range, x As Integer
Dim y As Integer
y = Range("d" & Rows.Count).End(xlUp).Row
For x = 2 To y
If Cells(x, 4) > 20 Then
If rg Is Nothing Then'is nothing 判断rg是不是为空
Set rg = Rows(x) '把第一个>20的数放进去,也就是给rg 一个初始值
Else '否则
Set rg = Union(rg, Rows(x)) 'rg在原来的基础上在加一行,用union把符合条件的组合到一起,注用Union连接区域rg必须要有初始值。
End If
End If
Next x
rg.Select
End Sub
Sub 选取方法2()
Dim y As Integer, yy As String
Dim y1
y1 = Range("d" & Rows.Column).End(xlUp).Row
For y = 2 To y1
If Cells(y, 4) > 20 Then
If yy = "" Then
yy = y & ":" & y
Else
yy = yy & "," & y & ":" & y
End If
End If
Next y
Range(yy).Select
End Sub 这理说是明下,我不能编辑,只能在下一楼更正下。第二题的 y1 = Range("d" & Rows.Column).End(xlUp).Row 里面的Column错了,正确的是count.上交了后我才去运行我的程序发现出错了。 '方法1:
Private Sub 选取1()
Dim i As Integer, rg As Range
For i = 2 To 11
If Cells(i, 4) > 20 Then
If rg Is Nothing Then
Set rg = Rows(i)
Else
Set rg = Union(rg, Rows(i))
End If
End If
Next i
rg.Select
End Sub
'方法2:
Sub 选取2()
Dim sr As String, x As Integer, k
For x = 2 To 11
If Cells(x, 4) > 20 Then
If sr = "" Then
sr = x & ":" & x
Else
sr = sr & "," & x & ":" & x
End If
End If
Next x
Range(sr).Select
End Sub
'方法3:
Sub 选取3()
Dim sr As String, x As Integer, k
For x = 2 To 11
k = x
If Cells(x, 4) > 20 Then
Do While Cells(x, 4) > 20
x = x + 1
Loop
sr = sr & k & ":" & x - 1 & ","
End If
Next x
sr = Left(sr, Len(sr) - 1)
Range(sr).Select
End Sub
页:
[1]