Excel如何用宏做4个列为一个单元的循环

Sub宏6()''宏6宏''快捷键:Ctrl+e'Columns("ML:MO").SelectRange("ML1173").ActivateActiveWorkboo... Sub 宏6()
'
' 宏6 宏
'
' 快捷键: Ctrl+e
'
Columns("ML:MO").Select
Range("ML1173").Activate
ActiveWorkbook.Worksheets("大x").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("大x").Sort.SortFields.Add Key:=Range("ML1:ML1297") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("大x").Sort.SortFields.Add Key:=Range("MM1:MM1297") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("大x").Sort.SortFields.Add Key:=Range("MN1:MN1297") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("大x").Sort
.SetRange Range("ML1:MO1297")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
上面是我在EXCEL中录制的一个宏

只要求做列循环,比如下一个应该是这样:
Columns("MP:MS").Select
直到Columns("PJ:PM").Select为止。
也就是说,括号里有4个列,4个列为一个单元的循环,请各位高手帮助,谢谢!
展开
 我来答
基德Efj
2011-08-21 · TA获得超过754个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:270万
展开全部
Sub 宏xx()
Range("MP:MS").Select '这里先选择

For i = 0 To 100 '要多少次,你自己算一下。

'这里放你的代码

ActiveCell.Offset(0, 4).Columns("A:D").EntireColumn.Select

next i

End Sub
追问
我测试后,只能在Columns("ML:MO").Select这4列中不断的循环,不再向下循环,猛一到ACY:ADB列,就停止了。
我算了一下,从ML列到PM列,一共有80列,每4列为一组,一共是20组,要做20次循环。
我的要求是:
先选择ML:MO这4列一组后,就执行上图宏代码( Range("ML1173").Activate至End With)排序,接着选择下一个MP:MS这4列一组后,就执行排序,以此类推,一直循环到PJ:PM列为止。再麻烦调整一下代码,谢谢!
追答
你的这个,Range("ML1173").Activate,在循环体内。所以产生了这个原因。
每次循环都会被你的Range("ML1173").Activate重新定位一下,所以它一直就在那4列循环。
若想解决这个问题,你必须改一下你的代码。而不是更改我的代码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式