返回列表 上一主題 發帖

[發問] kill row

EXCEL 應該本來就是這樣吧

你在 [A10000] 放入值 22, 然後整列刪除它

在按 ctrl-end row 它就直接圈選到 Row 10000

我也因為此感到困擾, 因為垂直捲軸會變得很難用

TOP

你在空白頁執行一下  Sheet1.[A1:A800].Clear
按 ctrl-end row 它就直接圈選到 Row 800

TOP

無效啊?
我用這一句 Range("i74:i65536").EntireRow.Delete 也無效
t8899 發表於 2015-1-18 21:02



沒看懂我說的?

開啟1個新 EXCEL 檔案 ->  vba 執行  Sheet1.[A1:A800].Clear ->  返回 Sheet1 ->  按 shift + ctrl  + end  -> EXCEL 就直接圈選到 Row 800

可是我們根本沒填資料不是嗎? 只是執行 Clear 而已,  因為Clear 指定的範圍極限是 Row = 800

按 shift + ctrl  + end 後 Excel 它就自己反白到 Row = 800 ( 800 不正好就是剛剛 Clear 指定的列數嘛 )

所以這不是 EXCEL 自己的問題嗎

TOP

我寫一個巨集,刪掉最後一列(已使用)後面"沒用的列"都可套用
Sub a133323()
Dim a
Set a = Cells.Find ...
t8899 發表於 2015-1-19 21:35


有 bug 歐 (  你可以在 Row 5 ~ 10 填入資料, 其餘空白, 去測試就知道有 bug )

幫你改成這樣

Sub a133323()
刪除最後n列 = 1  ' <--- 你的目的
Dim a
Set a = Cells.Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not a Is Nothing Then
   a.Offset(1 - 刪除最後n列).EntireRow.Delete
End If
ActiveSheet.UsedRange
End Sub

TOP

本帖最後由 bobomi 於 2015-1-20 08:33 編輯
測試沒有錯
可能沒表達清楚
我的目的=====>以您的例子 Row 5 ~ 10 填入資料
則ROW10為最後一列(有資 ...
t8899 發表於 2015-1-20 07:08


這我就不懂了
我測的時候
開啟空白檔 -> R5 - R10 填入資料
它會從  ROW 6 - 65536 全刪除
而不是從 Row 10 開始

TOP

本帖最後由 bobomi 於 2015-1-20 09:00 編輯
請測試
t8899 發表於 2015-1-20 08:42


已經知道原因了
你的 Book1.xls 剛好 R1 ~ R4 有內容 ( 看起來好像沒有資料, 其實它是有格式資料或者其他什麼的, 祇是看不見而已 )
所以程式執行後不會出錯

請你另開一各全新檔案 -> R5 - R10 填入資料 -> 執行你的 Sub a133323( ) -> 它就出錯了 !!
因為這各新檔案的 R1 ~ R4 是各 100% 無任何格式資料的區域

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題