返回列表 上一主題 發帖

[發問] kill row

[發問] kill row

之前我在跑某程序時,程序有問題
導致我按ctrl-end row居然到65536
我用mark 的方式刪除,刪除75-65536
按ctrl-end還是到65536 ?? Book1.zip (324.09 KB)

EXCEL 應該本來就是這樣吧

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

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

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

TOP

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

TOP

你在空白頁執行一下  Sheet1.[A1:A800].Clear
按 ctrl-end row 它就直接圈選到 Row 800
bobomi 發表於 2015-1-18 11:02

無效啊?
我用這一句 Range("i74:i65536").EntireRow.Delete 也無效 :'(

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

沒看懂我說的?

開啟1個新 EXCEL 檔案 ->  vba 執行  Sheet1.[A1:A800].Clear ->  返回 Sheet1 ->  ...
bobomi 發表於 2015-1-18 21:35

了解! 謝謝

TOP

Range("i74:i65536").EntireRow.Delete
ActiveSheet.UsedRange

執行 ctrl  + end

TOP

本帖最後由 t8899 於 2015-1-19 10:32 編輯
Range("i74:i65536").EntireRow.Delete
ActiveSheet.UsedRange

執行 ctrl  + end
准提部林 發表於 2015-1-19 10:15

謝謝!可以了,這沒砍掉,檔案大小多了2,500,000 /kb 左右
ActiveSheet.UsedRange 這行意思是?

TOP

Range("i74:i65536").EntireRow.Delete
ActiveSheet.UsedRange

執行 ctrl  + end
准提部林 發表於 2015-1-19 10:15

再請教:
同此問題,找最後一列的語法 ???

TOP

回復 9# t8899


   
Range("i74:i65536").EntireRow.Delete
Dim xE As Range
With ActiveSheet.UsedRange
   Set xE = .Item(.Count)
   MsgBox "最後一格〔位址〕:" & xE.Address
   MsgBox "最後一格〔列號〕:" & xE.Row
   MsgBox "最後一格〔欄號〕:" & xE.Column
   MsgBox "最後一格〔欄名〕:" & Split(xE.Address, "$")(1)
End With

取得〔最後一列〕方法有多種,例如:End(xlUp), End(xlDown)
不過依據實際資料來判斷較準確!
VBE內建說明檔可找到相關語法,花些時間在這找資料,可學到很多!
 

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題