iT邦幫忙

0

目前的儲存格變到在畫面的最上端,請問VBA怎寫?

大家好,
我現在有一個需求,就是在Excel中,目前在用的儲存格變到在畫面的最上端。
如下圖一,變成下圖二。同樣選擇的是儲存格B23不變,不過捲動畫面,使儲存格B23跑到畫面的最上方。
圖一https://ithelp.ithome.com.tw/upload/images/20201027/20129455YSqdCdK3Lm.jpg

圖二https://ithelp.ithome.com.tw/upload/images/20201027/20129455KmzmBzUNwW.jpg

一般來說可用滑鼠的滾動來完成,可是我想設成巨集後,設快捷鍵用鍵盤就能完成。

之前我在Word有類似的需求,在word中我寫的如下,可以達成類似的需求(遊標目前在的一行變到最上面一行)
ActiveDocument.ActiveWindow.SmallScroll Down:=70
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1

可是在Excel中,我就寫不出來了。
可以請您幫我完整地寫出來嗎?
目前在用的儲存格變到在畫面的最上端。

我最近才學會錄製巨集的……寫的語法也是看錄製後的語法是怎樣才會的。目前的我就像是小學生一樣,只會照樣造句而已。所以萬分拜託請您幫我寫出來。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-10-27 07:48:06
最佳解答
Cells(1, ActiveCell.Column).Select
看更多先前的回應...收起先前的回應...

海綿寶寶您好,
您可能誤會我的意思了。您的那個語法會跑到該欄最上面的一個儲存格。

而我的需求是,選擇的儲存格不變,但是捲動視窗,讓該儲存格到畫面的最上方。如下圖一選擇的是B23的儲存格,我要變成圖二的樣子,同時選擇的是B23的儲存格不變,只不過捲動畫面、使B23跑到畫面的最上方。
圖一https://ithelp.ithome.com.tw/upload/images/20201027/20129455EMx08FHpo3.jpg

圖二https://ithelp.ithome.com.tw/upload/images/20201027/20129455h8NL5O7yl2.jpg

ActiveWindow.ScrollRow = Selection.Row
ActiveWindow.ScrollColumn = Selection.Column

參考來源

race iT邦新手 5 級 ‧ 2020-10-27 13:29:24 檢舉

使用Application.Goto

海綿寶寶您好,感謝您,結果很接近我的需求。但是是否可以不要向右捲動?意思就是向下捲動而已。恩,用圖來說好了,用您提供的語法會從下面圖一變成圖三,可是我希望的結果是圖二。請問是否有辦法呢?

圖一 使用巨集前https://ithelp.ithome.com.tw/upload/images/20201027/20129455iAylsWEufZ.jpg

圖二 希望的結果
https://ithelp.ithome.com.tw/upload/images/20201027/20129455vpMJ2UCJkw.jpg

圖三 使用語法
ActiveWindow.ScrollRow = Selection.Row
ActiveWindow.ScrollColumn = Selection.Column
的結果
https://ithelp.ithome.com.tw/upload/images/20201027/201294558QbbG4Bpux.jpg

只用第 1 of 2 列就好了

ActiveWindow.ScrollRow = Selection.Row

Hi 海綿寶寶,
我發現好像光用
ActiveWindow.ScrollRow = Selection.Row
就是我要的效果了,謝謝您。

0
race
iT邦新手 5 級 ‧ 2020-10-27 13:35:37

使用Application.Goto ActiveCell, True

Race您好,感謝您,結果很接近我的需求。但是是否可以不要向右捲動?意思就是向下捲動而已。恩,用圖來說好了,用您提供的語法會從下面圖一變成圖三,可是我希望的結果是圖二。請問是否有辦法呢?

圖一 使用巨集前https://ithelp.ithome.com.tw/upload/images/20201027/20129455iAylsWEufZ.jpg

圖二 希望的結果
https://ithelp.ithome.com.tw/upload/images/20201027/20129455vpMJ2UCJkw.jpg
圖三 使用Application.Goto ActiveCell, True的結果
https://ithelp.ithome.com.tw/upload/images/20201027/201294558QbbG4Bpux.jpg

race iT邦新手 5 級 ‧ 2020-10-28 15:10:54 檢舉

利用Cells功能吧!將ActiveCell改成Cells(ActiveCell.Row,1)

我要發表回答

立即登入回答