排序時excel會移動游標
所以ActiveCell代表的格子可能與錄好再執行時的格子不同
另一方面主要的問題在
排序的範圍是固定的 不能用相對錄又要它固定範圍
所以錄完還要依需求修改
在b9格 開始錄:按A→Z排序鈕,Ctrl+D 結束
產生
ActiveCell.Offset(-1, 0).Range("A1:D9").Sort Key1:=ActiveCell.Offset(7, 1). _
Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlStroke, _
DataOption1:=xlSortNormal
Selection.FillDown
更改為
Range("A1:D8").Sort Key1:=ActiveCell.Offset(-1, 0). _
Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlStroke, _
DataOption1:=xlSortNormal
Selection.FillDown
其中.Range("A1")好像沒什麼作用
就不管它了(刪掉亦可)
※ 引述《nik33 (far away home...)》之銘言:
: 軟體:Excel
: 版本:2003
: 有一組學生的成績需要整理,如下:
: ---------------------------------------
A B
: 中 英 數
: a 20 76 45
: b 90 34 76
: c 45 56 34
: d 76 20 45
: e 34 90 76
: f 56 45 34
: g 98 76 56
9: 最高分 ? ? ?
: ---------------------------------------
: 希望可以透過錄製一個巨集(已選"以相對位置錄製"):
: 1. 把滑鼠放在"最高分"列的"中文"下面的格子
: 2. 開始錄製
: 3. 排序(由低至高分)
: 4. 選取最低那格的數值(最大值)
: 4. 在"最高分"那列相應位置貼上最大值
: 5. 停止錄製
: 錄製後把滑鼠放在最高分列英文那格,執行巨集,但未能成功做到預期效果,
: 希望大家可以指點一下,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.39.13