Thomas
Thomas

Reputation: 23

Excel VBA: Input box with control characters

I'm using an input box to retrieve QR-codes from reader.

Unfortunately, the parameters in the QR-code are separated by group separator characters (decimal ASCII code 29) and these characters are being omitted.

The read in string contains all the data, but I can't distinguish the single parameters anymore.

What can I do? Is there another way to read in a string WITH all the control characters?

Thank you for your help!

Upvotes: 0

Views: 603

Answers (1)

T.M.
T.M.

Reputation: 9938

Without further action your inputbox result indeed gets displayed as string without (visible) Chr(29) group separators ... even though the InputBox string result still contains those characters.

Therefore you need to convert the input eventually; the following Example demonstrates possible ways:

Sub testInput()
'a) Provide for QR results
    Dim qr(0 To 2) As Variant
'b) Provide for default using Chr(29) group delimiters
    Dim DefaultInput
    DefaultInput = "a" & Chr(29) & "b" & Chr(29) & "c" & vbNewLine
    
'c) Execute InputBox (and assign to first QR result)
    qr(0) = "0. Visible Input:    " & InputBox("Enter QR", "QR input", DefaultInput)
'd) Convert visible inputs to 2nd and 3rd QR result
    qr(1) = "1. Replaced Chr(29): " & Replace(qr(0), Chr(29), ",")
    qr(2) = "2. Splitted Chr(29): " & Join(Split(qr(0), Chr(29)), "|")
'e) Show all three QR results
    MsgBox Join(qr, vbNewLine)
End Sub

Further hint

If you need to get the different group results separately, I'd choose the split function (without joining the 0-based 1-dimensional array elements immediately, which was only done for display in the messagebox).

Upvotes: 0

Related Questions