返回列表 上一主題 發帖

[發問] 如何在有資料的地方自動編號?

請問大大,下列的程式碼之結果,若不想出現多餘的空白格子,即不想最後一筆資料跳到65536,我的資料約編號到500而已,請問該如何修改?
Sub yy()
[a:a].HorizontalAlignment = xlCenter
Range("a2:a" & [b65536].End(3).Row) = "=row()-1"
[a:a] = [a:a].Value
End Sub

TOP

回復 11# winston219
End 屬性 套用至範例特定傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵  可參閱  http://forum.twbts.com/thread-2055-1-1.html  4樓
  1. Sub yy()
  2.     [a:a].HorizontalAlignment = xlCenter
  3.     Range("a2:a" & [b2].End(xlDown).Row) = "=row()-1"
  4.     'Range("a2:a" & [b2].End(4).Row) = "=row()-1"
  5.     [a:a] = [a:a].Value
  6. End Sub
  7. Sub EX()
  8.     With Range("B2", [b2].End(xlDown)).Offset(, -1)
  9. ' Range("B2", [b2].End(xlDown))-> 從B2往下到最後有資料的範圍,Offset(, -1)->向左位移一欄的範圍,
  10.         .HorizontalAlignment = xlCenter
  11.         .Cells = "=row()-1"
  12.         .Value = .Value
  13.     End With
  14. End Sub
複製代碼

TOP

最後一筆資料跳到65536
這應該是b欄的資料有問題, [b65536].End(3).Row應該是b欄最後有資料的列,若跑到65536表示有看不到的字符存在。

TOP

我試了GBKEE與oobird兩位大大的方法後,仍然沒辦法解決這個問題。換了另一個工作表後,也同樣出現到65536的空格,請問可否到有資料的列數即可,不要出現那麼多往下的空格資料?

TOP

已告訴你問題所在了,請自行檢查吧。
或者把檔案附上來了解!

TOP

謝謝oobird大大,已發新問題,將檔案已附上去了!

TOP

建議樓主用9樓第一個macro時
最初加上這一句
  1. Range("E2:E" & Rows.Count).Clear
複製代碼
先清除E列資料,否則下次再用便會移位(變了F列),搞得車毁人亡

TOP

回復 17# FAlonso
很好的建議,此程序是依照樓主的需求,所量身製作的故沒加上你建議的程式碼.

TOP

我和版大有一樣問題
借版大的順風車喔不知哪個方法好用試一下
lionliu

TOP

我試出來一個方法結合各位大大的方法就可以了
運用excel -->  編輯--到    在選擇空格後
可將所有空格選取-->刪除-->整列上移
然後再執行2為大大的方法就可以了
方法有點笨但是可以做
lionliu

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題