2017-04-11 2 views
0

Ich versuche ein Makro zu erstellen, das relevante Informationen aus einem ausgewählten Text herausfiltert (kleiner als eine Seite lang). Diese Informationen werden dann zum Ausfüllen einer MS-Word-Vorlage verwendet.Kann in VBA eine 'Eingabebox' erstellt werden, die eine Textauswahl mit mehreren Zeilen als Eingabe akzeptiert?

Ich habe die ausgewählten Texte über eine .TXT-Datei geöffnet, aber ich glaube, es wird den Workflow verbessern, wenn es möglich wäre, den ausgewählten Text in eine Form eines Eingabefeldes zu kopieren &.

Ich habe versucht, die folgenden:

Dim text As String 
text = InputBox("Enter selected text here:") 

Dies ist jedoch nur akzeptiert eine Zeichenfolge (eine einzelne Textzeile).

Danke, Donfernanado

+1

Sie müssen ein uns erstellen er Form. –

Antwort

0

als Rich Holton wies darauf hin, können Sie Ihre eigenen InputBox erstellen, die die gewünschte Funktionalität unterstützt:

Zuerst eine Userform erstellen, die wie ein InputBox aussieht. Meine heißt CustomInputBox.

Setzen Sie die Eigenschaft MultiLine des TextBox auf True.

Beispiel:

MessageBox Example

dann eine gewisse Logik für die Schaltflächen hinzufügen und eine Funktion Ihre Inputbox zu zeigen, die einige Parameter wie Prompt und Titel nimmt:

Option Explicit 

Private inputValue As String 
Private Cancel As Boolean 

Private Sub btnCancel_Click() 
    Cancel = True 
    Me.Hide 
End Sub 

Private Sub btnOK_Click() 
    If Me.txtInput.Value <> "" Then 
     inputValue = Me.txtInput.Value 
    End If 
    Me.Hide 
End Sub 

'This is the Function you are going to use to open your InputBox 
Public Function Display(Prompt As String, Optional Title As String = "", Optional Default As String = "") As String 
Cancel = False 

Me.lblPrompt.Caption = Prompt 

If Title <> "" Then 
    Me.Caption = Title 
Else 
    Me.Caption = "Microsoft Excel" 
End If 

If Default <> "" Then 
    Me.txtInput.Value = Default 
Else 
    Me.txtInput.Value = "" 
End If 

Me.txtInput.SetFocus 
Me.Show vbModal 

If Not Cancel Then 
    Display = inputValue 
Else 
    Display = "" 
End If 
End Function 

Jetzt sind Sie in der Lage sind Verwenden Sie Ihre InputBox wie folgt:

Dim text As String 
text = CustomInputBox.Display("Enter selected text here:") 
Verwandte Themen