返回列表 上一主題 發帖

請問混合編碼我應該怎麼做

請問混合編碼我應該怎麼做

麻煩各位功力強大的大大幫忙:'(

編碼問題.rar (15.65 KB)

回復 1# sheau-lan
品號只會新增還是會去修改之前的??
例如: 如果修改[A6]儲存格為M4-xxx規格的品號 , 下方的存放編號要全部更新嗎??

如果不用管,可參考下面;如果要,不如建個按鈕更新全部存放編號比較適用。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim ar, spec, prefix, count As Long
  3.     With Target
  4.         If .Row >= 3 And .Column = 1 Then
  5.             '其它欄處理略過, 假設D欄已取得規格
  6.             '.........
  7.             spec = Cells(.Row, "D").Value
  8.             prefix = Split(spec, "-")(0)
  9.             ar = Range(Cells(1, "H"), Cells(.Row - 1, "H"))
  10.             For Each x In ar
  11.                 If prefix = Split(x, "-")(0) Then
  12.                     count = count + 1
  13.                 End If
  14.             Next
  15.             Application.EnableEvents = False
  16.             Cells(.Row, "H").Value = prefix & "-" & Replace(Cells(1, count / 4 + 1).Address(False, False), "1", "")
  17.             Application.EnableEvents = True
  18.         End If
  19.     End With
  20. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

若資料不多可參考公式:
=IF(D3="","",LEFT(D3,FIND("-",D3))&CHAR(64+INT(COUNTIF(D$2:D2,LEFT(D3,FIND("-",D3))&"*")/4)+1))

TOP

stillfish00 大大
可以用了,MM規格基本上沒問題
但英制規格3/8,1/4,#8
這些規格都不行捏

TOP

回復 4# sheau-lan
D欄 規格有變動, H欄 規格-A  輸入 外盒標籤
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     Dim W As Variant, Ar As Variant, i As Integer
  4.     With Target.Cells(1)
  5.         W = Split(.Cells, "-")
  6.         If .Column = 4 And UBound(W) >= -1 Then
  7.             Application.EnableEvents = False
  8.             Ar = Application.Transpose(Range("H3", Range("H" & Rows.Count).End(xlUp)))
  9.             Ar = Filter(Ar, W(0) & "-")
  10.             i = 65
  11.             Do While UBound(Filter(Ar, W(0) & "-" & Chr(i))) >= 3
  12.                 i = i + 1
  13.             Loop
  14.             .Cells.Offset(, 4) = W(0) & "-" & Chr(i)
  15.             Application.EnableEvents = True
  16.         End If
  17.     End With
  18. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 99
Dim TG As Range
With Target
If .Row >= 3 And .Column = 1 Then
     If .Value = "" Then
98:      .Offset(0, 2) = ""
         .Offset(0, 3) = ""
         .Offset(0, 4) = ""
         .Offset(0, 5) = ""
         .Offset(0, 6) = ""
         .Offset(0, 7) = ""
         .Offset(0, 8) = ""
         .Offset(0, 9) = ""
         
  Else: Set TG = Sheet7.[H3:H9999].Find("*" & .Value & "*", , , xlWhole)
             If TG Is Nothing Then GoTo 98
                .Offset(0, 9) = TG.Offset(0, -6).Value
               TG2 = .Offset(0, 2).Value
                .Offset(0, 2) = TG.Offset(0, -3).Value
                .Offset(0, 3) = TG.Offset(0, -2).Value
                .Offset(0, 5) = Application.VLookup(TG2, Sheet15.[A4:H9999], 8, False)
                     If IsError(.Offset(0, 5).Value) Then .Offset(0, 5) = ""
                .Offset(0, 6) = TG.Offset(0, 1).Value
大大...可我前面還有這一段
可以加一起嗎?
這一段是抓其他相關資料的
不用再KEY一次

TOP

GBKEE 大大...麻煩請看一下我的留言,我試了好久
都沒辦法加一起

TOP

回復 7# sheau-lan


請提供較完整的參考資料及檔案, 並詳細說明操作流程及需求,
而不是只有程式碼, 也許可以從程式碼解讀, 但很花時間也容易誤判!

另.公式可以做到的話, 為何一定要用VBA???

TOP

准提部林 大大...你要求的附檔案說明

Book1.rar (124.8 KB)

TOP

回復 9# sheau-lan

1.〔品號〕固定四碼(英數混合〕?都由上而下逐一輸入?
2.有無可能輸入後又更改,造成〔存放編號〕須由上而下再重新編號?

先用公式處理,〔存放編號〕會自動以最新的狀態編碼,看是否如所需,若非得用vba,再說:
Xl0000111v01.rar (85.38 KB)

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題