Mar Abr 12, 2011 3:14 pm
- Código:
Public Function aMid(A As String, B As Long, C As Long, Optional D As Boolean, Optional E As Boolean) As String
On Error Resume Next
'================================================================'
' AX: Función aMid '
' Call aMid("String", Comienzo, Longitud, UCase, Msgbox) '
' Agradecimiento: linkgl '
'================================================================'
Dim M As String
Dim N As String
If Not Len(A) > 0 Then Exit Function
If Not B > 0 Then Exit Function
If Not C > 0 Then Exit Function
If B > Len(A) Then Exit Function
If C > Len(Right(A, Len(A) - B + 1)) Then Exit Function
M = Right(A, Len(A) - B + 1)
N = Left(M, C)
Select Case D
Case True
N = UCase(N)
Case False
N = N
End Select
Select Case E: Case True: MsgBox N, vbInformation: End Select
aMid = N
End Function
Modo de uso:
- Código:
Call aMid(String, Comienzo, Longitud, UCase/LCase, Msgbox)
String, Comienzo, y Longitud es lo mismo que en la función Mid original.
He agregado dos nuevos parámetros a la función y ambos son opcionales. Uno es UCase para mostrar el resultado en mayúscula. El otro es para mostrar un mensaje, el mensaje muestra el resultado. Los dos son Boolean por lo que se denotan como True/False. Aquí les dejo un ejemplo:
- Código:
Call aMid("campo", 2, 3, True, True)
Automáticamente muestra el MsgBox y devuelve "AMP", al igual que la función la función Mid original, sólo que en mayúscula porque está activado este parámetro en mi función. También puede ser:
- Código:
Call aMid("campo", 2, 3, CBool(1), CBool(1))
Y el mismo resultado.
Saludos