ich habe 2 Excel-Dateien
Aus der 1. Datei sollen Daten in eine 2. Datei per SVERWEIS übernommen werden (in diesem Fall Zuweisung von Gewichten)
Auszug aus 1. Datei:
B1: /abCd C1: 10,5
B2: /abCD C2: 1936,45
...
In o.a. Beispiel sind die Strings immer 5 Zeichen lang, die Längen variieren, die maximale Länge der Strings in Spalte B ist 56 Zeichen.
Problematisch ist, dass SVERWEIS nicht auf Gross-Kleinschreibung achtet -> für meine Anforderung ist das aber unumgänglich!
Mein Ansatz ist:
in beiden Dateien den String (also z.B. von Zelle B1) "/abCd" aufzuteilen (...MID(A1;1;)....) und dann den ASCII-CODE davon zu ermitteln und diese ASCII-CODES aneinanderzureihen.
Aufgrund der enstehenden Zeichenfolge möchte ich dann den SVERWEIS durchführen...
-> aus /abCD soll 47-97-98-68-100 werden
War aber nicht erfolgreich mit meinen Versuchen:
Sub asciicodevonstringermitteln()
Dim laenge, i, lastrow As Integer
Dim umzuwandeln As String
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To lastrow
umzuwandeln = Cells(i, 2).Value
laenge = Len(umzuwandeln)
Cells(i, 1).Select
If laenge = 1 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 2 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 3 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 4 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))&""-""&CODE(MID(RC[1],4,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 5 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))&""-""&CODE(MID(RC[1],4,1))&""-""&CODE(MID(RC[1],5,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
End If
Cells(i, 1).Select
Next i
Application.CutCopyMode = False
End Sub
Was mache ich falsch?
Gibt es "bessere" Ansätze?