Board logo

標題: [發問] 如何在有資料的地方自動編號? [打印本頁]

作者: winston219    時間: 2010-12-3 23:11     標題: 如何在有資料的地方自動編號?

請問如何在有出現姓名的地方,自動向下編號? 且編號能置中對齊? (如下1、2、3的數字自動跑出來)

編號   姓名
1       林小明
2       張大同
3       李小璇
作者: oobird    時間: 2010-12-3 23:37

本帖最後由 oobird 於 2010-12-3 23:39 編輯
  1. Sub yy()
  2. [a:a].HorizontalAlignment = xlCenter
  3. Range("a2:a" & [b65536].End(3).Row) = "=row()-1"
  4. [a:a] = [a:a].Value
  5. End Sub
複製代碼

作者: winston219    時間: 2010-12-4 00:33

謝謝oobird大大丫,您真是我的貴人咧~
作者: GBKEE    時間: 2010-12-4 09:02

本帖最後由 Hsieh 於 2010-12-4 12:02 編輯

回復 1# winston219
  1. Sub Ex() '使用 DataSeries 方法
  2.     Range("A2") = 1
  3.     Range("A2:A" & Range("B" & Rows.Count).End(xlUp).Row).DataSeries
  4. End Sub
複製代碼
另有基本功操作
如何在有資料的地方自動編號?
作者: winston219    時間: 2010-12-5 18:24

謝謝GBKEE大大的細心說明!
作者: winston219    時間: 2010-12-5 18:27

請問如何自動計算合計? (如下之70、60、55自動算出)

編號   姓名     金額1      金額2     合計
1       林小明      50          20        70
2       張大同      20          40        60
3       李小璇      30          25        55
作者: GBKEE    時間: 2010-12-6 11:16

回復 6# winston219
基本功 E2公式=C2+D2
滑鼠在E2右下處 成黑色十字形時 按左鍵二下 完成
作者: winston219    時間: 2010-12-6 15:06

請問GBKEE大大,如何用VBA寫程式?
作者: GBKEE    時間: 2010-12-6 15:52

本帖最後由 GBKEE 於 2010-12-6 15:58 編輯

回復 8# winston219
  1. Sub Ex() '編號 在B2
  2.         Dim R As Range
  3.         Set R = Range("B2").End(xlToRight)
  4.         Set R = Range(R, R.End(xlDown)).Offset(, 1)
  5.         R.Cells(1) = "合計"
  6.         R.Cells(2).FormulaR1C1 = "=RC[-1]+RC[-2]"
  7.         R.Cells(2).AutoFill Range(R.Cells(2), R.Cells(R.Rows.Count))
  8.     End Sub
  9. ''''''''''''''''''''''''''''''''''
  10. Sub Ex() '編號 在B2
  11.         Dim R As Range
  12.         Set R = Range("B2").End(xlToRight)
  13.         Set R = Range(R, R.End(xlDown)).Offset(, 1)
  14.         R.Cells(1) = "合計"
  15.         With Range(R.Cells(2), R.Cells(R.Rows.Count))
  16.             .FormulaR1C1 = "=RC[-1]+RC[-2]"
  17.             .Cells = .Value  '
  18.         End With
  19.     End Sub
複製代碼

作者: winston219    時間: 2010-12-6 22:52

哈,感謝GBKEE大大的教導!
作者: winston219    時間: 2010-12-6 23:46

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

回復 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
複製代碼

作者: oobird    時間: 2010-12-7 11:06

最後一筆資料跳到65536
這應該是b欄的資料有問題, [b65536].End(3).Row應該是b欄最後有資料的列,若跑到65536表示有看不到的字符存在。
作者: winston219    時間: 2010-12-8 17:56

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

已告訴你問題所在了,請自行檢查吧。
或者把檔案附上來了解!
作者: winston219    時間: 2010-12-9 22:05

謝謝oobird大大,已發新問題,將檔案已附上去了!
作者: FAlonso    時間: 2010-12-10 12:39

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

回復 17# FAlonso
很好的建議,此程序是依照樓主的需求,所量身製作的故沒加上你建議的程式碼.
作者: lionliu    時間: 2012-4-2 17:45

我和版大有一樣問題
借版大的順風車喔不知哪個方法好用試一下
作者: lionliu    時間: 2012-4-3 11:58

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)