本帖最后由 合肥狮子 于 2015-1-19 21:32 编辑
liulang0808 发表于 2015-1-18 16:11
你的宏是具体到哪张表,具体步骤是什么,在附件中描述下吧
一、你的宏是具体到哪张表?筛选出每天涨跌幅前5名公式或VBA怎么写?.xlsm——每天涨跌幅前五名 二、具体步骤是什么?
主要步骤:
1、B列筛选——降序;
2、复制B列中的63-119行,在原位置不动,选择性粘贴数值;
3、重复1、2、完成C、D、E等列。苦思冥想,反复试验,终于录制了一个宏,但是录制宏只能运行4步不能应用到后来的列,且无用代码太多,要是能看懂代码后修改一下就好了,拜托各位!
4、关键是B列录制的宏,要能在B列-AX列中应用。
录制宏具体操作步骤:
1、选择B3单元格下拉箭头——降序——选择B64-B119单元格——ctrl+C复制——右键选择性粘贴数值——B列工作完成。
2、在C、D、E等右边的列,都重复B列工作即可。
3、具体操作步骤看录制的宏也能看出来!
——————————————————————————————————————————————
Sub 前5名1() ' 前5名1 Macro ActiveWorkbook.Worksheets("每天涨跌幅前五名").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("每天涨跌幅前五名").AutoFilter.Sort.SortFields.AddKey:= _ Range("B3"),SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("每天涨跌幅前五名").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B64:B119").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks _ :=False, Transpose:=False End Sub
——————————————————————
关键是:1、把Range("B3"),——改成从B到AX列;2、 Range("B64:B119").——改成从B到AX列;3、从B到AX列要能用户自己设定。
|