Προς το περιεχόμενο

Macro για Excel 2010


Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

 Παιδιά καλησπέρα έχω ένα πρόβλημα με το excel.
Προσπαθώ να δημιουργήσω αυτή την εντολή αλλά μου βγάζει λάθος και το μήνυμα (Compile error : Amdiguous name detected : Greeklish)
Ο κώδικας είναι αυτός :

Function Greeklish(keimeno As String) As String
Application.Volatile True
Dim Varr As Variant
Dim inchar As Variant
Dim exchar As Variant
Dim pl As Integer, gr As Integer, lu As Integer
Dim gramma As String
pl = Len(keimeno)
 
inchar = Array("Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", _
"Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω", _
"Ά", "Έ", "Ή", "Ί", "Ό", "Ύ", "Ώ", "Ϊ", "Ϋ", "ΐ", "ΰ", "ς")
 
exchar = Array("A", "B", "G", "D", "E", "Z", "H", "8", "I", "K", "L", _
"M", "N", "KS", "O", "P", "R", "S", "T", "Y", "F", "X", "PS", "W", _
"A", "E", "H", "I", "O", "Y", "W", "I", "Y", "I", "Y", "S")
 
ReDim Varr(pl - 1)
For gr = 1 To pl
gramma = Mid(keimeno, gr, 1)
For lu = LBound(inchar) To UBound(inchar)
If UCase(gramma) = inchar(lu) Then gramma = exchar(lu): Exit For
Next
Varr(gr - 1) = gramma
Next
Greeklish = Join(Varr, "")
End Function
 Μήπως ξέρετε τι πρέπει να αλλάξω
 

Επεξ/σία από foxmoor
Δημοσ.

Αν και δε μας δίνεις το sub σου, θα στοιχημάτιζα ότι το έχεις ονομάσει και αυτό Greeklish. Άλλαξε του όνομα.

Δημοσ.

Sub Greklish()
Function Greeklish(keimeno As String) As String
Application.Volatile True
Dim Varr As Variant
Dim inchar As Variant
Dim exchar As Variant
Dim pl As Integer, gr As Integer, lu As Integer
Dim gramma As String
pl = Len(keimeno)
inchar = Array("Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", _
"Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", _
"¢", "¸", "¹", "º", "¼", "¾", "¿", "Ú", "Û", "À", "à", "ò")
exchar = Array("A", "B", "G", "D", "E", "Z", "H", "8", "I", "K", "L", _
"M", "N", "KS", "O", "P", "R", "S", "T", "Y", "F", "X", "PS", "W", _
"A", "E", "H", "I", "O", "Y", "W", "I", "Y", "I", "Y", "S")
ReDim Varr(pl - 1)
For gr = 1 To pl
gramma = Mid(keimeno, gr, 1)
For lu = LBound(inchar) To UBound(inchar)
If UCase(gramma) = inchar(lu) Then gramma = exchar(lu): Exit For
Next
Varr(gr - 1) = gramma
Next
Greeklish = Join(Varr, "")
End Function
End Sub
Το έχω κάνει και αυτό αλλά πάλι έχω το ίδιο πρόβλημα

Δημοσ.

Το έχω κάνει και αυτό αλλά πάλι έχω το ίδιο πρόβλημα

Τώρα όμως δεν πρέπει να έχεις το ίδιο πρόβλημα. Τώρα έχεις άλλο πρόβλημα. Άλλο μήνυμα λάθους πρέπει να σου βγάζει.

1) το function να βγει έξω από το sub

2) καλείς το function μέσα από το sub, δίνοντας του φυσικά το argument που περιμένει

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...