返回列表 上一主題 發帖

[發問] 如何在A欄 自動填上編號

[發問] 如何在A欄 自動填上編號

如何在A欄 自動填上編號,請各位高手指敎這程式碼如何寫? 謝謝!!
A欄          B欄
               1234
               23
               123

               234
               567
               
               123
               678
               4567
               185

完成後
A欄          B欄
1             1234
1             23
1             123

2             234
2             567
               
3             123
3             678
3             4567
3             185

回復 1# aoss98
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro   
  4. MyBRow = 1
  5. MyANo = 1   
  6.    
  7.     Range("B65536").Select
  8.    Selection.End(xlUp).Select   
  9.    MyRow = Selection.Row   
  10.     Do   
  11.     If Range("B" & MyBRow).Value = "" Then   
  12.     MyBRow = MyBRow + 1   
  13.     MyANo = MyANo + 1
  14.     Else     
  15.     Range("A" & MyBRow).Value = MyANo   
  16.     MyBRow = MyBRow + 1        
  17.     End If   
  18.     Loop Until MyBRow = MyRow + 1           
  19. End Sub
複製代碼
我只會用一般的vba ><
50 字節以內
不支持自定義 Discuz! 代碼

TOP

Dim iI%, iNum%, bCheck As Boolean, bNext As Boolean

  iI = 0
  iNum = 1
  bNext = False
  bCheck = True

  With Sheets(1)
    While bCheck
      iI = iI + 1
      If .Cells(iI, 2) <> "" Then
        .Cells(iI, 1) = iNum
        bNext = False
      Else
        If bNext = True Then
          bCheck = False
        Else
          iNum = iNum + 1
          bNext = True
        End If
      End If
    Wend
  End With

單純針對每一個可能列出要做的事,
然後注意不要出現無限迴圈即可.

TOP

這個不一定要用vba
假設開始在 A2 (即B2=1234)
在A2 輸個 1 (因為B2有東西)
在A3 輸這個公式 = IF(B3="", "", IF( A2="", A1+1 , A2 ))
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

謝謝 basarasy, luhpro 兩位指敎,問題已解決!!

TOP

回復 1# aoss98
  1. Sub nn()
  2. Set Rng = Range([B1], [B65536].End(xlUp)).SpecialCells(xlCellTypeConstants)
  3. For i = 1 To Rng.Areas.Count
  4.    Set a = Rng.Areas(i)
  5.    For Each b In a
  6.       b.Offset(, -1) = i
  7.    Next
  8. Next
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

謝謝各位指教!!!

TOP

本帖最後由 john2006168 於 2010-7-29 00:50 編輯
回復  aoss98
Hsieh 發表於 2010-7-27 22:22


tesst2010.zip (8.4 KB)
    老師,我有類似的問題相同的問題,請問用VBA怎麼寫

tesst2010.zip (8.4 KB)

TOP

回復 8# john2006168
  1. Sub nn()
  2. Dim Rng As Range
  3. [A10].Insert xlToRight
  4. [A10] = "plt no"
  5. Set Rng = Range([A11], [A65536].End(xlUp)).SpecialCells(xlCellTypeConstants)
  6. For i = 1 To Rng.Areas.Count
  7. mystr = Rng.Areas(i).Address
  8.    Rng.Areas(i).Insert xlToRight
  9.    Range(mystr).Value = i
  10. Next
  11. Range([A11], [A65536].End(xlUp)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  12. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 9# Hsieh


    老師如果plt no用01 ,02,03表示,應該怎麼改

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題