Keresés

Új hozzászólás Aktív témák

  • Pakliman

    tag

    válasz attilalr2 #28000 üzenetére

    Hali!

    Nem tudom, Nálad milyen kódolás van.
    A munkahelyemen spec. program TXT kimenetét kellett átalakítanom olvashatóbbá.
    A makró (standard modulba rakod):

    Private Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
    Private Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long

    Public Function Konvert(mit, Optional KellKonvertálni As Boolean = True) As String
    Dim vissza As Long
    Dim dest As String

    If KellKonvertálni Then
    dest = Space(Len(mit))
    vissza = OemToCharBuff(mit, dest, Len(mit))
    Else
    dest = mit
    End If

    Konvert = dest

    End Function

    Ezt használhatod cellába beírva, vagy akár egy újabb makróban is, amelyik végigfut a szükséges cellákon és átalakítja a tartalmukat. :)

  • Fferi50

    Topikgazda

    válasz attilalr2 #28000 üzenetére

    Szia!

    Próbáld ki ezt a makrót:
    Sub cserelo(ByRef rng As Range, ByVal mit As String, ByVal mire As String)
    Dim cl As Range, xx As Integer
    If Len(mit) <> Len(mire) Then MsgBox "Nem egyforma a két szöveg!", vbInformation: Exit Sub
    For Each cl In rng.Cells
    If Not IsEmpty(cl) Then
    For xx = 1 To Len(mit)
    cl.Value = Replace(cl.Value, Mid(mit, xx, 1), Mid(mire, xx, 1))
    Next
    End If
    Next
    End Sub

    A VBA nézet immediate ablakából indíthatod, pl. így:
    cserelo Sheets("Munka1").Range("A1:C72"),"áéó","aeo" a végén enter.

    Tehát az első paraméter a tartomány címe (vba-szerint beírva), a második a cserélendő betűk, a harmadik pedig amire cserélni kell. A második és a harmadik paramétert "szinkronban" kell tartani, mert az azonos pozícióban levő betűket cseréli (tehát első betűt az elsőre, második betűt a másodikra és így tovább).

    Üdv.

Új hozzászólás Aktív témák