Excel-Benutzerformular VBA

0

Ich möchte eine Bezeichnung entsprechend einer Zellenkombination ändern. Zum Beispiel habe ich 5 Spalten, die ich in meinem Etikett anzeigen kann. Aber ich zeige nur die Spalten, die nicht leer sind. Label.Caption = Spalte A, Spalte C und Spalte D Wie kann ich dies in VBA in Label.Caption ausdrücken? Vielen Dank

Henrique
quelle
Stellen Sie sicher, dass Sie ActiveX-Steuerelemente verwenden, wenn Sie Labels verwenden und den Namen dynamisch ändern möchten. Im Eigenschaftenbereich ändern Sie einfach den Namen in einen aussagekräftigen Namen und können wie gesagt darauf verweisen, labelName.Caption = value oder labelName.Caption = Range ("A1"). Value oder etwas Äquivalentes.
Ejbytes
Sie benötigen keine ActiveX-Steuerelemente, es sei denn, Sie zählen die Formulare als ActiveX-Steuerelemente. Es gibt zwei verschiedene Formulare, die sich unterschiedlich verhalten und über unterschiedliche Symbolleisten verfügen. Zum einen .caption, zum anderen .text
LPChip 17.04.17
Versuchen Sie, Daten aus mehreren Zeilen in dieser Spalte anzuzeigen? Wenn ja, gibt es einen Grund, warum es sich um eine Beschriftung handeln muss, anstatt um ein Textfeld, das so formatiert ist, dass es wie eine Beschriftung aussieht? Wenn die Spalte nur eine nicht leere Zeile enthält, müssen zu einem bestimmten Zeitpunkt mehrere Spalten in der Beschriftung angezeigt werden?
BamAlmighty

Antworten:

0

Etwas wie das

Sub Henrique()
    Dim labelRow As Long
    Dim labelText As String
    Dim i As Long
    labelRow = 1
    For i = 1 To 5
        If Not IsEmpty(Sheet1.Cells(labelRow, i)) Then
            labelText = labelText & Sheet1.Cells(labelRow, i) & " "
        End If
    Next
    labelText = Trim$(labelText)
    With UserForm1.Label1
        .Caption = labelText
    End With
End Sub
Raystafarian
quelle