Cách tạo số sê-ri cho mỗi lựa chọn trong combobox trong excel vba


0
Private Sub CommandButton1_Click()

    With ComboBox1.Value
        Dim a, b As String
        Dim i, j, k, l, x, q, m, temp As Long
        a = ComboBox1.Text
        i = Application.WorksheetFunction.Match(a, Range("A1:A1000"), 0)
        j = Cells(i, 2)
        l = j * 1000
        For q = 2 To 100
            For m = 2 To 100
                If Cells(q, m).Value < 0 Then
                    k = m
                End If
            Next
        Next
        x = l
        If Cells(i, GC).Value = temp Then
            Click = Click + 1
        Else
            Click = 0
        End If
        Cells(i, GC) = x + Click
        TextBox1.Text = x + Click
        temp = Cells(i, GC).Value
    End With
    GC = GC + 1

đó là một liên kết của vấn đề sắp xảy ra,

https://plus.google.com/100336580781932243792/posts/VHb18Hv6pTt?pid=6207264542909974946&oid=100336580781932243792

để biết thêm mô tả

Trên màn hình ngắn trình bày vấn đề. Những gì chúng tôi muốn đạt được là khi người dùng chọn một giá trị trong cột Triệu A, logic cung cấp một giá trị chứa giá trị được xác định trước xuất phát từ cột Hồi Biết và một số sê-ri được tạo ra từ hệ thống bắt đầu từ Chuyện 000.

Nói - Khi người dùng chọn từ cột Điên A - PP, Hệ thống sẽ nhận được giá trị tương ứng từ cột LÊ - 210, và cũng sẽ tạo một số sê-ri bắt đầu từ Từ 000 000, và nối giá trị và cung cấp 210000 Cho người dùng.

Khi người dùng chọn từ cột Cất A - KK, hệ thống sẽ nhận được giá trị tương ứng từ cột LÊ BÊ - 103, và cũng sẽ tạo một số sê-ri bắt đầu từ Từ 000, và nối giá trị và cung cấp 103000 Cho người dùng.

Khi một lần nữa, người dùng chọn cột CƠ A - PP, hệ thống sẽ nhận được giá trị tương ứng từ cột LỊCH - 210, và cũng sẽ tạo một số sê-ri bắt đầu từ Từ 001 001, và ghép giá trị và cung cấp giá trị 210001 cho người dùng Như số sê-ri, 000 000, đã được sử dụng.

Câu trả lời:


0

Đặt cái này trong mô-đun UserForm1

Option Explicit

Private ur As Range

Private Sub CommandButton1_Click()
    Dim c As Range, co As Range

    Set c = getLastID
    Set co = c.Offset(, -1)

    If Len(co) > 0 Then c = co + 1 Else c = ur.Cells(c.Row, 2) * 1000
    Me.TextBox1.Text = c
End Sub

Private Sub ComboBox1_Change()
    Me.TextBox1.Text = getLastID.Offset(, -1)
End Sub

Private Function getLastID() As Range
    Dim sel As String, lc As Long, cr As Long

    sel = Me.ComboBox1.Text
    If Len(sel) = 0 Then sel = ur.Cells(ur.Row + ur.Rows.Count, 1)

    cr = Application.WorksheetFunction.Match(sel, ur.Columns(1), 0)
    lc = ur.Cells(cr, ur.Column + ur.Columns.Count + 1).End(xlToLeft).Column

    If lc < 5 Then lc = lc + 2
    Set getLastID = ur.Cells(cr, lc + 1)
End Function

Private Sub UserForm_Initialize()
    Set ur = Worksheets(1).UsedRange
End Sub

để tạo số sê-ri bắt đầu từ ID trong cột B * 1.000 hoặc tăng ID cuối cùng


enter image description here

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.