在excel中循环以遍历一列中的值
我有以下数据 ID Balance Balance_Sum Max_Balance 1 1000 2300 1500 1 -200 2300 1500 1 1500 2300 1500 ID余额余额总和最大余额 1 1000 2300 1500 1 -200 2300 1500 1 1500 2300 1500 我的下一列将计算一些值if(Max\u Balance在excel中循环以遍历一列中的值,excel,Excel,我有以下数据 ID Balance Balance_Sum Max_Balance 1 1000 2300 1500 1 -200 2300 1500 1 1500 2300 1500 ID余额余额总和最大余额 1 1000 2300 1500 1 -200
我不能使用VBA,因为我的文件太大,加载需要时间。我想你需要的是一个公式的一部分,该公式计算从这里到列表末尾的
=MAX(…)
。这可以使用=OFFSET(…)函数完成。让我们列出从A1开始的值,以及从B1开始的相对最大值
B1: =MAX(OFFSET(A1;0;0;COUNT(A1:A$1000)))
因此,COUNT()
的最后一项非常高,它确保包含所有行。只有当中间没有空行时,这才有效
您可以向下和横向复制此公式,第1000行是此处唯一的不变项。Sub abc()
Sub abc()
j = 2
ActiveSheet.Range("a1").Select
ActiveSheet.Range("a65536").Select
lastrow = Selection.End(xlUp).Row
ActiveSheet.Range("a1").Select
For i = 2 To lastrow
Range("a" & i).Select
If Range("a" & i).Value = "East" Or Range("a" & i).Value = "west" Or Range("a" & i).Value = "north" Or _
Range("a" & i).Value = "south" Then
GoTo cont
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
Range("a" & j).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont:
Next i
'/////// column b ///////////
ActiveSheet.Range("a1").Select
For i = 2 To lastrow
Range("b" & i).Select
If Range("b" & i).Value >= "01-01-2013" And Range("b" & i).Value <= "30-06-2013" Then
GoTo cont2
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
Range("a" & j).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont2:
Next i
End Sub
j=2
ActiveSheet.Range(“a1”)。选择
ActiveSheet.Range(“a65536”)。选择
lastrow=Selection.End(xlUp).Row
ActiveSheet.Range(“a1”)。选择
对于i=2到最后一行
范围(“a”和i)。选择
如果范围(“a”&i).Value=“东”或范围(“a”&i).Value=“西”或范围(“a”&i”).Value=“北”或_
Range(“a”和i).Value=“south”然后
转到cont
其他的
行(i)。选择
Application.CutCopyMode=False
选择,剪
图纸(“图纸2”)。选择
范围(“a”和“j”)。选择
活动表。粘贴
j=j+1
图纸(“图纸1”)。选择
选择。删除移位:=xlUp
如果结束
续:
接下来我
“//b列///////////
ActiveSheet.Range(“a1”)。选择
对于i=2到最后一行
范围(“b”和i)。选择
如果范围(“b”&i).值>=“01-01-2013”和范围(“b”&i).值<代码>子abc()
j=2
图纸(“图纸1”)。选择
ActiveSheet.Range(“a1”)。选择
ActiveSheet.Range(“a65536”)。选择
lastrow=Selection.End(xlUp).Row
'///a列
ActiveSheet.Range(“a3:a”&lastrow)。选择
自动筛选
ActiveSheet.Range($A$4:$A$”&lastrow)。自动筛选字段:=1,标准1:=“=”
Application.CutCopyMode=False
Selection.EntireRow.Select
'范围(选择,选择。结束(xlToRight))。选择
rownum=Selection.Row
如果rownum=3,则
自动筛选
后藤标签1
如果结束
选择,复制
图纸(“图纸2”)。选择
'lrow=ActiveSheet.Range(“A65536”).End(xlUp).Row
lrow=Cells.Find(what:=“*”,after:=[a1],searchorder:=xlByRows_
搜索方向:=xlPrevious).行
范围(“a”&lrow+1)。选择
活动表。粘贴
图纸(“图纸1”)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
Selection.EntireRow.Delete
自动筛选
“b栏///////////
标签1:
ActiveSheet.Range(“b65536”)。选择
lastrow=Selection.End(xlUp).Row
ActiveSheet.Range(“b4:b”和lastrow)。选择
自动筛选
ActiveSheet.Range($b$1:$b$”&lastrow)。自动筛选字段:=1,标准1:=“=”
Application.CutCopyMode=False
范围(选择,选择。结束(xlToLeft))。选择
Selection.EntireRow.Select
'范围(选择,选择。结束(xlToRight))。选择
rownum=Selection.Row
如果rownum=3,则
自动筛选
GoTo label2
如果结束
选择,复制
图纸(“图纸2”)。选择
'lrow=ActiveSheet.Range(“A65536”).End(xlUp).Row
lrow=Cells.Find(what:=“*”,after:=[a1],searchorder:=xlByRows_
搜索方向:=xlPrevious).行
范围(“a”&lrow+1)。选择
活动表。粘贴
图纸(“图纸1”)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
Selection.EntireRow.Delete
'Selection.AutoFilter
'c栏////////////
标签2:
ActiveSheet.Range(“c65536”)。选择
lastrow=Selection.End(xlUp).Row
ActiveSheet.Range(“c4:c”和lastrow)。选择
自动筛选
ActiveSheet.Range($c$1:$c$”&lastrow)。自动筛选字段:=1,标准1:=“SG Plus”_
运算符:=xlOr,准则2:=“=选择”
Application.CutCopyMode=False
'范围(选择,选择。结束(xlToRight))。选择
'选择。复制
'工作表(“工作表2”)。选择
'lrow=activehseet.Range(“A65536”).End(xlUp).Row
'ActiveSheet.Range(“a”&lrow)。选择
'活动表。粘贴
'工作表(“工作表1”)。选择
rownum=Selection.Row
如果rownum=3,则
自动筛选
后藤标签3
如果结束
范围(“a4:a”和最后一行)。选择
范围(选择,选择。结束(xlToRight))。选择
Selection.EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
Selection.EntireRow.Delete
'Selection.AutoFilter
'又是c列/////////////
标签3:
ActiveSheet.Range(“c65536”)。选择
lastrow=Selection.End(xlUp).Row
ActiveSheet.Range(“c4:c”和lastrow)。选择
自动筛选
ActiveSheet.Range($c$1:$c$”&lastrow)。自动筛选字段:=1,标准1:=“=”
Application.CutCopyMode=False
rownum=Selection.Row
如果rownum=3,则
自动筛选
后藤标签4
如果结束
范围(选择,选择。结束(xlToRight))。选择
范围(“a4:a”和最后一行)。选择
范围(选择,选择。结束(xlToRight))。选择
Selection.EntireRow.Copy
图纸(“图纸2”)。选择
'lrow=ActiveSheet.Range(“A65536”).End(xlUp).Row
lrow=Cells.Find(what:=“*”,after:=[a1],searchorder:=xlByRows_
搜索方向:=xlPrevious).行
范围(“a”&lrow+1)。选择
活动表。粘贴
图纸(“图纸1”)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
Selection.EntireRow.Delete
'Selection.AutoFilter
“//超过/////////////////////////////
标签4:
ActiveSheet.Range(“a1”)。选择
对于i=4到最后一行
范围(“a”和i)。选择
如果范围(“a”&i).Value=“中美”或范围(“a”&i).Value=“东北”
Sub abc()
j = 2
Sheets("sheet1").Select
ActiveSheet.Range("a1").Select
ActiveSheet.Range("a65536").Select
lastrow = Selection.End(xlUp).Row
'/// column a
ActiveSheet.Range("a3:a" & lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$A$4:$A$" & lastrow).AutoFilter Field:=1, Criteria1:="="
Application.CutCopyMode = False
Selection.EntireRow.Select
' Range(Selection, Selection.End(xlToRight)).Select
rownum = Selection.Row
If rownum = 3 Then
Selection.AutoFilter
GoTo label1
End If
Selection.Copy
Sheets("Sheet2").Select
'lrow = ActiveSheet.Range("A65536").End(xlUp).Row
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
ActiveSheet.Range("a" & lrow + 1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
Selection.AutoFilter
'column b///////////
label1:
ActiveSheet.Range("b65536").Select
lastrow = Selection.End(xlUp).Row
ActiveSheet.Range("b4:b" & lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$b$1:$b$" & lastrow).AutoFilter Field:=1, Criteria1:="="
Application.CutCopyMode = False
Range(Selection, Selection.End(xlToLeft)).Select
Selection.EntireRow.Select
'Range(Selection, Selection.End(xlToRight)).Select
rownum = Selection.Row
If rownum = 3 Then
Selection.AutoFilter
GoTo label2
End If
Selection.Copy
Sheets("Sheet2").Select
'lrow = ActiveSheet.Range("A65536").End(xlUp).Row
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
ActiveSheet.Range("a" & lrow + 1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
' Selection.AutoFilter
'column c////////////
label2:
ActiveSheet.Range("c65536").Select
lastrow = Selection.End(xlUp).Row
ActiveSheet.Range("c4:c" & lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$c$1:$c$" & lastrow).AutoFilter Field:=1, Criteria1:="SG Plus", _
Operator:=xlOr, Criteria2:="=Select"
Application.CutCopyMode = False
'Range(Selection, Selection.End(xlToRight)).Select
' Selection.Copy
' Sheets("Sheet2").Select
' lrow = activehseet.Range("A65536").End(xlUp).Row
' ActiveSheet.Range("a" & lrow).Select
' ActiveSheet.Paste
' Sheets("Sheet1").Select
rownum = Selection.Row
If rownum = 3 Then
Selection.AutoFilter
GoTo label3
End If
Range("a4:a" & lastrow).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireRow.Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
' Selection.AutoFilter
'column c again/////////////
label3:
ActiveSheet.Range("c65536").Select
lastrow = Selection.End(xlUp).Row
ActiveSheet.Range("c4:c" & lastrow).Select
Selection.AutoFilter
ActiveSheet.Range("$c$1:$c$" & lastrow).AutoFilter Field:=1, Criteria1:="="
Application.CutCopyMode = False
rownum = Selection.Row
If rownum = 3 Then
Selection.AutoFilter
GoTo label4
End If
Range(Selection, Selection.End(xlToRight)).Select
Range("a4:a" & lastrow).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireRow.Copy
Sheets("Sheet2").Select
'lrow = ActiveSheet.Range("A65536").End(xlUp).Row
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
ActiveSheet.Range("a" & lrow + 1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
' Selection.AutoFilter
'////////////////////////// over /////////////////////////////
label4:
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("a" & i).Select
If Range("a" & i).Value = "MidAmerica" Or Range("a" & i).Value = "Northeast" Or Range("a" & i).Value = "Southeast" Or _
Range("a" & i).Value = "West" Then
GoTo cont
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont:
Next i
'/////// column b ///////////
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("b" & i).Select
If Range("b" & i).Value = "CA" Or Range("b" & i).Value = "AZ" Then
GoTo cont2
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont2:
Next i
'///////////column c //////////
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("c" & i).Select
If Range("c" & i).Value = "SG" Then
GoTo cont3
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont3:
Next i
'//////////column l/////////////
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("l" & i).Select
If Range("l" & i).Value <= "01/06/2014" And Range("l" & i).Value >= "01/01/2013" Then
GoTo cont4
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont4:
Next i
'//////////column m/////////////
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("m" & i).Select
If Range("m" & i).Value = "12/01" Or Range("m" & i).Value = "12/05" Then
GoTo cont5
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont5:
Next i
'//////////column q and r/////////////
ActiveSheet.Range("a1").Select
For i = 4 To lastrow
Range("q" & i).Select
If Range("q" & i).Value <> " " And Range("r" & i).Value <> " " And Range("u" & i).Value <> " " _
And Range("z" & i).Value <> " " And Range("aa" & i).Value <> " " And Range("ab" & i).Value <> " " _
And Range("b" & i).Value <> " " And Range("j" & i).Value <> " " Then
GoTo cont6
Else
Rows(i).Select
Application.CutCopyMode = False
Selection.Cut
Sheets("Sheet2").Select
lrow = Cells.Find(what:="*", after:=[a1], searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
Range("a" & lrow + 1).Select
ActiveSheet.Paste
j = j + 1
Sheets("sheet1").Select
Selection.Delete Shift:=xlUp
End If
cont6:
Next i
End Sub