返回列表 上一主題 發帖

[發問] kill row

[發問] kill row

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

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

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

TOP

沒看懂我說的?

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

了解! 謝謝

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

本帖最後由 t8899 於 2015-1-19 21:41 編輯
回復  t8899


   
Range("i74:i65536").EntireRow.Delete
Dim xE As Range
With ActiveSheet.Used ...
准提部林 發表於 2015-1-19 21:00

我寫一個巨集,刪掉最後一列(已使用)後面"沒用的列"都可套用
Sub a133323()
Dim a
Set a = Cells.Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not a Is Nothing Then
e = a.Offset(1).Address
b = ActiveSheet.UsedRange.Rows.Count
c = "d" & b   'd任何欄名皆可
Range(e, c).EntireRow.Delete
End If
ActiveSheet.UsedRange
End Sub

TOP

本帖最後由 t8899 於 2015-1-20 07:20 編輯
有 bug 歐 (  你可以在 Row 5 ~ 10 填入資料, 其餘空白, 去測試就知道有 bug )
幫你改成這樣
Sub ...
bobomi 發表於 2015-1-19 22:35


測試沒有錯
可能沒表達清楚
我的目的=====>以您的例子 Row 5 ~ 10 填入資料
則ROW10為最後一列(有資料或有公式),ROW5 之前不砍 , ROW 11-65536 全刪除

TOP

這我就不懂了
我測的時候
開啟空白檔 -> R5 - R10 填入資料
它會從  ROW 6 - 65536 全刪除
而不是從 ...
bobomi 發表於 2015-1-20 08:32

請測試 Book1.zip (326.76 KB)

TOP

已經知道原因了
你的 Book1.xls 剛好 R1 ~ R4 有內容 ( 看起來好像沒有資料, 其實它是有格式資料或者其 ...
bobomi 發表於 2015-1-20 08:57


了解, 謝謝

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題