Saya memiliki beberapa kolom data yang perlu saya selaraskan dengan kolom master.
Berikut ini adalah contoh dari apa yang ingin saya capai, tetapi dengan tabel berisi string yang lebih besar dan lebih banyak baris. Data di setiap baris unik, hanya muncul sekali. Jadi saya hanya bertujuan untuk menyelaraskan nilai-nilai unik di kolom B, C dan D dengan nilai A yang berisi daftar lengkap dari string yang mungkin. Juga nilai-nilai di setiap kolom diurutkan, jadi ini adalah kasus menabrak sel sampai mereka sejajar dengan Kolom A, yang telah saya lakukan secara manual untuk saat ini tetapi ingin mengotomatisasi:
Saya memiliki pengalaman terbatas dengan Excel, tetapi semua penelitian telah mengarahkan saya ke kode ini untuk digunakan dalam modul. Sayangnya ketika dijalankan, itu tidak banyak membantu saya. Pada upaya kedua, untuk yang terbaik dari kemampuan saya, saya mencoba menyesuaikan kode agar sesuai dengan rentang nilai di lembar saya tetapi saya tidak bisa menjalankannya. Jadi saya berharap jika anggota yang lebih berpengalaman memberi tahu saya jika saya benar-benar perlu membuat kode sesuai dengan data saya atau hanya berfungsi? Terima kasih atas bantuan yang dapat Anda berikan atau luangkan waktu untuk membaca!
Option Explicit
Sub AlignCustNbr()
' hiker95, 01/10/2011
' http://www.mrexcel.com/forum/showthread.php?t=520077
'
' The macro was modified from code by:
' Krishnakumar, 12/12/2010
' http://www.ozgrid.com/forum/showthread.php?t=148881
'
Dim ws As Worksheet
Dim LR As Long, a As Long
Dim CustNbr As Range
Application.ScreenUpdating = False
Set ws = Worksheets("Sheet1")
LR = ws.Range("E" & ws.Rows.Count).End(xlUp).Row
ws.Range("E3:G" & LR).Sort Key1:=ws.Range("E3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
ws.Range("A3:C" & LR).Sort Key1:=ws.Range("A3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Set CustNbr = ws.Range("A2:C" & LR)
a = 2
Do While CustNbr.Cells(a, 1) <> ""
If CustNbr.Cells(a, 1).Offset(, 4) <> "" Then
If CustNbr.Cells(a, 1) < CustNbr.Cells(a, 1).Offset(, 4) Then
CustNbr.Cells(a, 1).Offset(, 4).Resize(, 3).Insert -4121
ElseIf CustNbr.Cells(a, 1) > CustNbr.Cells(a, 1).Offset(, 4) Then
CustNbr.Cells(a, 1).Resize(, 3).Insert -4121
LR = LR + 1
Set CustNbr = ws.Range("A3:C" & LR)
End If
End If
a = a + 1
Loop
Application.ScreenUpdating = 1
End Sub!
VLOOKUP
rumus dan menggunakan kolom tambahan (atau lembar kerja yang terpisah) untuk hasilnya.
VLOOKUP
, ketika parameter ke-4 adalah FALSE
.)