Excel - Padan rentetan kepada lajur & kenaikan dengan 1

Isu

Saya mempunyai dua helaian dengan data seperti berikut:

Helaian:

String, hasilnya

A0101

Format rentetan dalam Helaian 1 lajur A: Axxxx (A - abjad a ke z, x nombor 0-9). abjad adalah starter siri.

Helaian 2:

 A0101001 B0102001 Q9911001 S7834001 A0101002 A0101003 

Ruang A lembaran 2 - Axxxxxxx (A - abjad a ke z, x nombor 0-9)

tiga nombor terakhir adalah dalam urutan bagi setiap lima charcters yang pertama.

seperti dalam data di atas:

 A0101001 A0101002 A0101003 

Nombor tidak akan melompat ke 005 untuk rentetan A0101

Saya ingin memadankan tali dalam sel A2 sel 1 ke nilai dalam lajur A daripada helaian 2.

Jika rentetan saya adalah: A0101 dari helaian 1 dan saya dapati tiga entri berikut dari helaian 2: A0101001, A0101002, A0101003, hasil sel B2 pada helaian 1 ialah A0101004. Data saya adalah berurutan.

Penyelesaian

Saya telah menambah satu lagi data dalam A3 dalam helaian 1

B0102

Dalam baris 2 baris adalah tajuk lajur dan data di bawah

tali:

 A0101001 B0102001 Q9911001 S7834001 A0101002 A0101003 

Kemudian cuba makro "ujian" ini. Sekiranya anda ingin menyemak semula mcaro pertama "undo" dan kemudian "ujian"

 Sub test () Dim r As Range, c As Range, x As String Dim j As Integer, cfind As Range Dim y As String, add As String j = 0 With Worksheets ("sheet1") Set r = Range (Range ( "A2"), Range ("A2"). Akhir (xlDown)) 'msgbox r.Address For Each c Dalam rx = c.Value With Worksheets ("sheet2") Set cfind = .Cells.Find (what: = x, lookat: = xlPart) Jika cfind Tidak Ada Lalu GoTo nnext j = j + 1 add = cfind.Address 'msgbox j' msgbox add Adakah Set cfind = .Cells.FindNext (cfind) Jika cfind Tidak Ada Lalu GoTo nnext If cfind .Address = add Then GoTo line1 'msgbox cfind.Address j = j + 1' msgbox j Loop line1: y = Mid (cfind, 6, 2) End With 'sheet2 c.Offset (0, j + 1 nnext: j = 0 Selanjutnya c Akhir Dengan Akhir Sub Sub undo () Dengan Julukan Worksheets ("sheet1") Range (Range ("B2"), Range ("B2") Akhir (xlDown) Akhir Dengan Akhir Sub 

Catatan

Terima kasih kepada venkat1926 untuk tip ini.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama