2017-08-16 3 views
1

Ich arbeite an einem Projekt für die Arbeit und ich brauche Hilfe, diesen Code zu ändern, um mit meinem aktuellen Arbeitsblatt zu arbeiten. In meinem Arbeitsblatt "Registrierung" habe ich einen Bereich, in dem ich versuche, den Namen "Athlet" einzugeben und die Informationen aus dem Arbeitsblatt "Master List" abzurufen.Getting Range.Find zur Arbeit

aktualisieren Hier ist die ursprüngliche Arbeitsmappe, die diese Codierung herkommt. Ich versuche, dieses Coding für mein neues Arbeitsbuch zu verwenden, weil ich zwei Arbeitsblätter anstelle von einem verwende.

Original Workbook

Hier ist der alte Code, den ich habe, aber ich bin nicht in der Lage, es zu konfigurieren, um mit dieser neuen Arbeitsmappe zu arbeiten, da ich weg von zwei Arbeitsblatt gerade arbeitete statt einem.

Sub Update() 
Dim rngSearch As Range, rngFound As Range 
Set rngSearch = Range("B18:B150") 
Set rngFound = rngSearch.Find(What:=Range("B12").Value, LookIn:=xlValues, 
LookAt:=xlPart) 

If rngFound Is Nothing Then 
MsgBox "Please recheck name" 
Range("B12").Value = " " 
Exit Sub 

End If 

'Range("B12:O12").Copy 
'Range("B" & rngFound.Row).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
SkipBlanks _ 
    :=False, Transpose:=False 
'Range("B12:O12").ClearContents 
For a = 5 To 14 
If Cells(12, a) = "X" Or Cells(12, a) = "X" Then 
Cells(rngFound.Row, a).Value = "X" 
Else 
Cells(rngFound.Row, a).Value = " " 
End If 
Next 
Range("B12:O12").ClearContents 

Range("C12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,2,FALSE))" 
Range("D12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,3,FALSE))" 
Range("E12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,4,FALSE))" 
Range("F12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,5,FALSE))" 
Range("G12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,6,FALSE))" 
Range("H12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,7,FALSE))" 
Range("I12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,8,FALSE))" 
Range("J12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,9,FALSE))" 
Range("K12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,10,FALSE))" 
Range("L12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,11,FALSE))" 
Range("M12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,12,FALSE))" 
Range("N12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,13,FALSE))" 
Range("O12").Formula = "=IF($B12="" "","" "",VLOOKUP($B12,$B18:$O150,14,FALSE))" 

End Sub 

* Update * konnte ich ein Makro finden, die ebenfalls aktualisiert werden muss. Dies war in einem anderen Modul versteckt.

Sub values() 
' 
'values Macro 
' 

' 
    Range("B12:O12").Select 
    Selection.Copy 
    Range("B18").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 

End Sub 

Hier sind ein paar Bilder der neuen Arbeitsblätter, an denen ich arbeite.

Update Athlete: A29:O29

"Master List"

+2

Bitte poste keine Bilder von Code. Es könnte helfen, [ask] zu lesen. –

+1

Sie sollten Ihren Code hier anhängen, anstatt einen solchen Screenshot zu machen. –

+1

@John Coleman: Ich habe versucht, den Code zu kopieren und einzufügen, aber es gab einen Formatierungsfehler, den ich bekam, als ich versuchte, den Code zu posten. Deshalb screenshot ich es und postete es so. –

Antwort

1

In Ihrer get-Datendatei (die mit Knopf) versuchen, jede merge Spalte entfernen (A & B). Wiederholen Sie den Vorgang für "Masterliste" Wie Sie gesehen, könnte man Eingabename in Zelle A29 so müssen Sie B12 ändern -> A29

Sub Update() 
Dim rngSearch As Range, rngFound As Range 
'Search range: Change sheets and range 
Set rngSearch = Sheets("Master list").Range("A3:O150") 
' You type in cell A29 then search by cell A29, not B12 
Set rngFound = rngSearch.Find(What:=Range("A29").Value, LookIn:=xlValues, LookAt:=xlPart) 

If rngFound Is Nothing Then 
    MsgBox "Please recheck name" 
    Range("A29").Value = " " 
    Exit Sub 
End If 
'I think this is meaningless 
'Range("B12:O12").Copy 
'Range("B" & rngFound.Row).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
'Range("B12:O12").ClearContents 
'For a = 5 To 14 
'If Cells(12, a) = "X" Or Cells(12, a) = "X" Then 
'Cells(rngFound.Row, a).Value = "X" 
'Else 
'Cells(rngFound.Row, a).Value = " " 
'End If 
'Next 
'Range("B12:O12").ClearContents 

'You should pay attention to this as this is where your data will show: Row 29 from column B to O (I assume that you remove the merge cell A&B) 
' Source :master list 
Range("B29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,2,FALSE))" 
Range("C29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,3,FALSE))" 
Range("D29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,4,FALSE))" 
Range("E29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,5,FALSE))" 
Range("F29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,6,FALSE))" 
Range("G29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,7,FALSE))" 
Range("H29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,8,FALSE))" 
Range("I29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,9,FALSE))" 
Range("J29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,10,FALSE))" 
Range("K29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,11,FALSE))" 
Range("L29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,12,FALSE))" 
Range("M29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,13,FALSE))" 
Range("N29").Formula = "=IF($A29="","",VLOOKUP($A29,'Master list'!$A3:$O150,14,FALSE))" 

End Sub 

Update für die Werte sub

Sub values() 
    ' 
    'values Macro 
    ' 

    ' Edit your target sheet here: 
With Sheets("target sheet name") 
' Avoid select, it will slow down your code 
     .Range("B12:O12").Copy 
     .Range("B18").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ 
     SkipBlanks:=False, Transpose:=False 
    end with 
    End Sub 

p/s: könnte dies sein ist alles was du brauchst:

=IFERROR(VLOOKUP(A29,'Master list'!$A3:$O150,2,FALSE),"") 
+0

aktualisierte Antwort, wie Sie schließlich Ihren Code einfügen können. –

+0

Vielen Dank für Ihre Hilfe. Ich konnte ein Makro finden, das korrigiert werden müsste. Könntest du es sehen und wissen lassen, wie es verändert werden könnte? Vielen Dank. –

+0

Ohne zu wissen, wo und Zweck dieser Funktion (Kontext), ist es schwer, Ihnen eine Empfehlung zu geben. Übrigens könnten Sie versuchen, diesen "Bereich" mit einem übergeordneten Blattobjekt wie "Blätter (" Hauptliste ") zu modifizieren. Bereich (" B12: O12 ")". Seien Sie vorsichtig, es ist eine Werteprozedur, keine Wertmethode, die zu einem Bereichsobjekt gehört. –