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.