TextBox v cyklu   zodpovězená otázka

VB6/VBA

Dobrý den dovedl by mi někdo poradit. Vytvořil jsem několik TextBoxů ve VB pro Excel a potřeboval bych z nich číst v cyklu. Jak se mám na ně odkázat? Předpokládám, že syntaxe bude podobná jako pro VB6

př:

for I = 1 to 10

A(I)= TextBox(I).value

next I

Není to sice dobře zapsáno, ale doufám, že je to srozumitelné

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

a jak máte pojmenované ty textboxy?

Nejsem si tím 100% jistý, ale myslím, že ve VBA nejsou indexy prvků... Ale nevím to ale jistě, už si nepamatuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Spíš je otázka jak je máte vytvořené ty TextBoxy vytvořené - pokud jste je vytvářel ve formuláři, tak se patrně natvrdo jmenují TextBox1, TextBox2, TextBox3,...

čili pak se na ně dostanete takhle :

Dim A(9) As String

For i = 1 To 10

A(i - 1) = UserForm1.Controls("TextBox" & i).Value

Next i

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Místo .Value

A(i - 1) = UserForm1.Controls("TextBox" & i).Value

požívat TEXT (pro obsah), NAME (pro identifikátor), atp..

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Procházením kolekce Controls

Např. kontrola textboxů ve formuláři

a zobrazit msgbox s názvy prázdných

Přidat do referencí:

Microsoft Forms 2.0 Object Library

've formuláři (UserForm)

Private Sub CommandButton_Click()
    CheckTextBoxesInForm Me
End Sub

'v modulu
Sub CheckTextBoxesInForm(f As UserForm)
    Dim c As Control
    Dim msg As String
    
    For Each c In f.Controls
        If TypeName(c) = "TextBox" Then
            Dim tb As MSForms.TextBox
            Set tb = c
            If tb.Value = vbNullString Then
                msg = IIf(msg = "", "", msg & vbCrLf)
                msg = msg & tb.Name & ".Value = vbNullString"
            End If
        End If
    Next
    If msg <> "" Then MsgBox msg
End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback