Jag har en kolumn(A) i excel Det du vill göra är inte i Excel - utan VBA. Hittade svar på xldennis.comErsätta tecken i kolumn i Excel
Denna innehåller personnummer, ex 012345-6789 eller 0123456789
Jag lägger till en vanlig formulärknapp i arbetsboken, när jag trycker på den vill jag köra en procedur som loopar igenom hela bladet och infogar ett - mellan 6:e och 7:e sirffran, type
if right(kolumnvalue, 5) <> "-" then
tmpVal = Left(kolumnvalue, 6) & "-" & Right(kolumnvalue,4)
kolumnValue = tmpVal
end if
Nåt sånt tänkte jag
Men jag vet inte hur man loopar genom ett excelark, har inte jobbat så mycket i excel.Sv: Ersätta tecken i kolumn i Excel
Du får skapa en modul med ett makro som gör det du vill.
Skulle dock inte rekommendera att du loopar igenom alla celler då det tar för mycket
tid - antagligen i onödan.
Glöm inte lägga in DoEvents i din do-loop annars kommer din dator vara låst under
tiden den utför kontrollen.
/EmmaSv: Ersätta tecken i kolumn i Excel
Sub Lasa_Bearbeta_Skriva_Data()
Dim vaDataArray As Variant
Dim rgData As Range
Dim i As Integer
Dim tmpVal As String
'Då vi i exemplet varken vet antal fyllda celler eller vilka dessa är
'måste de först identifieras.
Set rgData = Range("A1", Range("A1").End(xlDown))
'Här läser vi in data till matrisen från det identifierade cellområdet.
vaDataArray = rgData.Value
'Bearbetning av data sker i matrisen. Då alla värdena återfinns i
'första kolumnen kan vi här använda oss av konstantvärdet 1.
'Vi vet inte antalet värden varför vi överlåter till XL att loppa
'igenom matrisen till dess att den når det sista värdet mha
'UBound.
For i = 1 To UBound(vaDataArray)
If vaDataArray(i, 1) > 1 Then
'vaDataArray(i, 1) = vaDataArray(i, 1) * 0.1
If Right(vaDataArray(i, 1), 5) <> "-" Then
tmpVal = Left(vaDataArray(i, 1), 6) & "-" & Right(vaDataArray(i, 1), 4)
vaDataArray(i, 1) = tmpVal
End If
End If
Next i
'Slutligen returneras den bearbetade data tillbaka till arbetsbladet.
rgData.Value = vaDataArray
End Sub