返回列表 上一主題 發帖

重新編號

回復 1# myleoyes


    我是一個新手~ 有進去看你發的問題~
    下行是你提之問題
    [前輩!因為資料刪除的關係造成編號無法連續,希望按鈕後編號能夠重新編號請按鈕,這就是需求,請知道的前輩,不吝賜教謝謝再三!!]
    這樣的問題,可能是我文學程度不夠好,看不懂.
    若照你字面上的說法,你自己寫的已經是符合按鈕後會重新編號
   還是你有其他的意思??????
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-1-18 16:13 編輯

回復 3# Hsieh


    喔~~  原來是這樣呀~ 謝謝大大的說明~

   不過~ 我應該沒法寫的比樓主好吧~ 但我還是會試看看~
   其它方式的寫法(但可能是一種奇怪的邏輯來處理)~ ^.^

  用不同的寫法~ 不過是個新手的寫法~
  X = 0
  Do Until Cells(1, 3 + X) = ""
   If Cells(1, 3 + X) = Cells(1, 3 + X - 1) And Cells(2, 3 + X) = Cells(2, 3 + X - 1) Then
      If Cells(154, 3 + X - 1) = "" Then
         Cells(154, 3 + X) = 1
      Else
         Cells(154, 3 + X) = Cells(154, 3 + X - 1)
      End If
   Else
      Cells(154, 3 + X) = Cells(154, 3 + X - 1) + 1
   End If
  X = X + 1
  Loop
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-1-19 10:10 編輯

回復 6# myleoyes


    不要叫我前輩~ 其實我也是新手~  ^^
    互相漏氣求進步啦~
    如果是固定15欄一個編號~ 我是有一個笨的寫法
   Sub 編號()
     I = 0                              
     For J = 1 To 100          '<------- J為編號
         For X = 0 To 14       '<------- X為跑15次,將J這個編號填寫15次
               I = I + 1            
              If Cells(1, 2 + I) = "" Then Exit Sub'<--------I為讓程式判斷是否有資料,若無則離開程式
              Cells(154, 2 + I) = J
         Next
    Next

End Sub
學習才能提升自己

TOP

回復 9# Hsieh


    大大的寫法是因應將原碼直接修改成新碼
   這樣簡短的程式碼~ 不算困難~ 但能直接就有這樣的邏輯~ 小弟還需要多學習~
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-1-20 12:17 編輯

回復 13# myleoyes


    HI~ 我只會用我現在學會的方式來幫你處理 (有測試過,可直接copy下面的程式碼)
   而我處理的方式是用 select case 來做~  我也有新增一個a1的執來幫我處理(主要是我還不會寫把資料暫存在變數中,所以需要一個欄位)
    這種處理方式在少數量上還ok~若是多筆數據的話~ 你可能就要加很多case~要寫很久~
    要短且優的程式 還是要看大大的
   
   Sub 左移()
     If Range("a1") = "" Then    '<----a1是用來處理選擇第幾個case
        Range("a1") = 1
     End If
     w = Range("a1")               
     Select Case w
     Case 1   '<----按第一次是第一個15筆的資料
     ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn
     Range("a1") = Range("a1") + 1
     Case 2 '<----按第二次是第二個15筆的資料
     ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn + 15
     Range("a1") = Range("a1") + 1
     Case 3  '<----按第三次是第三個15筆的資料
     ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn + 15
     Range("a1") = Range("a1") + 1
     Case 4 '<----按第四次 因為後面沒有資料,所以跳回到一開始的地方
     ActiveWindow.ScrollColumn = 3
     Range("a1") = ""
     End Select
End Sub
學習才能提升自己

TOP

本帖最後由 hugh0620 於 2011-1-20 14:10 編輯

回復 15# Hsieh
  
     呵呵~  還是大大厲害~
     我也試著把大大的程式碼做了一個小小的修改~
   這樣就只要選擇"B2"這個儲存格~ 不用再點選"B1"    (有時USER會不知道要去按"B1",乾脆就把USER當EXCEL笨蛋,只要按一個地方就好)

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Select Case Target(1).Address(0, 0)
        'Case "B1"                                                                                        '取消
        '    ActiveWindow.ScrollColumn = 1                                               '取消
        Case "B2"
        'k = IIf(ActiveWindow.ScrollColumn + 15 > 255, -(ActiveWindow.ScrollColumn) + 3, 15)  '大大為了防止欄大於255,嚴謹的寫法
        k=15                                                                                                  '若已經確定不可能超過255個欄位,其實只要令k=15每次增加15欄,也是可以的
        If Target.Offset(, ActiveWindow.ScrollColumn + k ) = "" Then           '新增 如果下面沒有資料就跳回到最前面
           ActiveWindow.ScrollColumn = 3                                                '新增
           Range("A2").Select                                                                   '新增
        Else                                                                                               '新增
            ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn + k
            Range("A2").Select
        End If                                                                                                 '新增
        End Select
End Sub
學習才能提升自己

TOP

回復 19# Hsieh
    大大真厲害 僅加上UsedRange.Columns.Count這一小段 就能使中間有中斷的部份~ 也能夠往下去抓有資料的部份~
     又學習到了~
學習才能提升自己

TOP

        靜思自在 : 願要大、志要堅、氣要柔、心要細。
返回列表 上一主題