Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MID - in VBA

MID - in VBA
06.06.2014 10:33:10
Chris
Hallo zusammen,
ich möchte mit der VBA-Funktion MID Teile aus einem String ausgeben lassen.
String-Quelle ist A1:A10, ab C1:C10 soll die Formel stehen:
ZelleC1 = =teil(A1;2;3)
ZelleC2 = =teil(A2;2;3) usw A3,A4 bis A10.
Leider reichen meine VBA-Kenntnisse nicht, um MID für einen Range Bereich zu programmieren. Hat da jmd eine Lösung?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MID - in VBA
06.06.2014 10:38:13
EtoPHG
Hallo Chris,
so, so ?
Range("C1:C10").Formula = "=MID(A1,2,3)"

...ächz ;-)
Gruess Hansueli

man kann das natürlich ...
06.06.2014 11:12:14
Rudi
Hallo,
.... auch etwas komplizierter gestalten ;-)
Sub bbb()
Dim rngC As Range, rngIn As Range
Dim arrIn, arrOut
Dim lngZeile As Long, lngSpalte As Long
Set rngIn = Range("A1:B10")
arrIn = rngIn
ReDim arrOut(1 To UBound(arrIn), 1 To UBound(arrIn, 2))
For lngZeile = 1 To UBound(arrIn)
For lngSpalte = 1 To UBound(arrIn, 2)
arrOut(lngZeile, lngSpalte) = Mid(arrIn(lngZeile, lngSpalte), 2, 3)
Next lngSpalte
Next lngZeile
rngIn.Offset(, rngIn.Columns.Count + 2) = arrOut
End Sub

Gruß
Rudi

Anzeige
das allerding, scheint mir dann doch zu einfach...
06.06.2014 14:18:14
EtoPHG
Rudi,
...mindestens fehlt in deinem Code eine Lucasische UDF, die das ganze auf einen akzeptablen, intellektuellen Level hievt.
Option Explicit
Sub bbb()
Dim rngC As Range, rngIn As Range
Dim arrIn, arrOut
Dim lngZeile As Long, lngSpalte As Long
Set rngIn = Range("A1:B10")
arrIn = rngIn
ReDim arrOut(1 To UBound(arrIn), 1 To UBound(arrIn, 2))
For lngZeile = 1 To UBound(arrIn)
For lngSpalte = 1 To UBound(arrIn, 2)
arrOut(lngZeile, lngSpalte) = extractSomething(arrIn(lngZeile, lngSpalte), 2)
Next lngSpalte
Next lngZeile
rngIn.Offset(, rngIn.Columns.Count + 2) = arrOut
Cells(rngIn.Rows.Count + 1, rngIn.Column + 4) = _
extractSomething("strange", 4711, -CLng("0815"))
End Sub
Function extractSomething(summertime As Variant, lStrt As Long, Optional lLen As Long = 1)
Dim lX As Long, aArr
aArr = Array(169, 32, 40, 633, lStrt / 10 + 5.9, 108, 613, 477, 607, 100, _
100, -lLen + 6687, 647, 32, 117, CLng(Left(lStrt, 2)) * 10 + _
7, 32, 115, -lLen + 6687, 32, 115, 592, 112, 41)
Select Case lLen
Case Is 
Gruess und schöPf Hansueli ;-)

Anzeige
AW: MID - in VBA
06.06.2014 10:39:14
Rudi
Hallo,
sowas?
Sub aaaa()
With Range("C1:C10")
.FormulaR1C1 = "=mid(rc[-2],2,3)"
.Value = .Value 'in Werte umwandeln
End With
End Sub
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige