返回列表 上一主題 發帖

[發問] 派車表_撥亂轉正

回復 20# BV7BW


    Sub tt2()
Dim Arr
With Sheets("工作表4")
    With .Range(.[k1], .[a65536].End(3))
        Arr = .Value    '資料裝入Arr
        For i = 2 To UBound(Arr)
            If InStr(Arr(i, 2), "A") Then   '編號有 A
                Arr(i, 11) = Int(Right(Arr(i, 2), 3))   '取最後3碼的整數,數值裝入Arr(i,11)
            Else
                Arr(i, 11) = Int(Mid(Arr(i, 2), 4, 3)) & "s"  '除了編號A以外的值,取-以後3碼整數+S,數值裝入Arr(i,11)
            End If
        Next
        .Value = Arr 'Arr值貼回excel
        .Sort Key1:=.Item(11), Order1:=1, Header:=1 '以K欄排序
    End With
    .Range("k1:k" & UBound(Arr)) = ""   '清除K欄數值
End With
End Sub

TOP

回復 20# BV7BW


註解已補上,請自行調整運用,有問題再討論,謝謝

TOP

回復 22# samwang

謝謝你 S大大
有註解我可再深入理解
再次謝謝你
敏而好學,不恥下問

TOP

回復 22# samwang
S大大 你好
工作表4中以編號xx-A001.""A""開頭  'If InStr(Arr(i, 2), "A") Then   '編號有 A
如以""B""或""C""……..開頭.出現錯誤
現以""A""開頭.只能單一運用
如能加上""B"".""C""……….或者只以編號後3碼作為轉換資料基點.而後3碼有S一樣列在最後
這樣運用變化比較靈活
謝謝你 S 大大
敏而好學,不恥下問

TOP

回復 24# BV7BW

請測試看看,謝謝
Sub tt3()
Dim Arr
With Sheets("工作表4")
     With .Range(.[k1], .[a65536].End(3))
         Arr = .Value    '資料裝入Arr
         For i = 2 To UBound(Arr)
             If InStr(Arr(i, 2), "S") Then   '編號有 S
                 Arr(i, 11) = Int(Mid(Arr(i, 2), 4, 3)) & "s"  '編號S,取-以後3碼整數+S,數值裝入Arr(i,11)
             Else
                 Arr(i, 11) = Int(Right(Arr(i, 2), 3))   '除了編號S以外,取最後3碼的整數,數值裝入Arr(i,11)
             End If
         Next
         .Value = Arr 'Arr值貼回excel
         .Sort Key1:=.Item(11), Order1:=1, Header:=1 '以K欄排序
    End With
     .Range("k1:k" & UBound(Arr)) = ""   '清除K欄數值
End With
End Sub

TOP

謝謝 S 大大
目前運作順暢
感謝你勞心賜教 謝謝
敏而好學,不恥下問

TOP

回復 8# 軒云熊

S 大大 你好
車編重整後.編號是由01.順序排列
現需求以A001.B001.C001順序排列
謝謝你 勞心
客戶重整.zip (21.71 KB)
敏而好學,不恥下問

TOP

回復 27# BV7BW
抱歉
熊 大大
又把稱號錯亂
敏而好學,不恥下問

TOP

回復 28# BV7BW

甚麼稱號錯亂?

TOP

回復 27# BV7BW

不知道是不是你要的需求,請確認看看,謝謝。
Sub tt4()
Dim Arr
With Sheets("工作表1")
      With .Range(.[k1], .[a65536].End(3))
          Arr = .Value    '資料裝入Arr
          For i = 2 To UBound(Arr)
              If InStr(Arr(i, 2), "S") Then   '編號有 S
                  Arr(i, 11) = Int(Mid(Arr(i, 2), 4, 3)) & "s"  '編號S,取-以後3碼整數+S,數值裝入Arr(i,11)
              Else
                  Arr(i, 11) = Int(Right(Arr(i, 2), 3))   '除了編號S以外,取最後3碼的整數,數值裝入Arr(i,11)
              End If
          Next
          .Value = Arr 'Arr值貼回excel
          .Sort Key1:=.Item(6), Order1:=1, _
          Key2:=.Item(11), Order1:=1, Header:=1 '以F、K欄排序

    End With
      .Range("k1:k" & UBound(Arr)) = ""   '清除K欄數值
End With
End Sub

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題