Arkadiusz
Arkadiusz

Reputation: 427

How to replace ASCII character using VBA

I'm trying to replace ASCII character 164 (which is ñ) with character 110. Here's my code: Private Sub CB_Kontynuuj_Click()

'sprawdzanie czy podane słówko zgadza sie z tłumaczeniem w bazie
If Replace(pobierzTlumaczenieZBazySlowek(lblJezykZrodlowy.Caption), Asc(164), Asc(110)) = tbJezykDocelowy.Text Then

    'jeśli tak, to zaliczamy słówko na plus
    Call zaliczJako(lblJezykZrodlowy.Caption, DOBRZE)

Else

    'jeśli nie, to zaliczamy słówko na minus
    Call zaliczJako(lblJezykZrodlowy.Caption, ZLE)

End If

zmienCzcionkeNaCzarna

'od razu pbieramy kolejne słówko
pobierzKolejneSlowko

End Sub

I don't get an error but it doesn't work.

Upvotes: 1

Views: 4202

Answers (1)

Ryszard Jędraszyk
Ryszard Jędraszyk

Reputation: 2412

First problem is that you are using Asc() function, which returns integer value, based on first character (digit in this case):

https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/asc-function

You should use ChrW() function instead:

https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/chr-function

You can create a loop which will populate worksheet with characters returned by this function and then find the one needed.

Try ChrW(241) instead of Asc(164) and ChrW(110) instead of Asc(110).

Upvotes: 1

Related Questions