我動態地創建一個名爲UserForm1的用戶表單。在其中,我生成了文本框,這些文本框將由用戶手動填充。之後我想閱讀它們的價值,但我不知道如何調用(文本框的值)。在vba excel中讀取userform中動態命名的文本框的語法?
下面的代碼位被用於創建和命名文本框:
With UserForm1 'scaling userform
.Height = max_width
.Width = 600
End With
For test1 = 1 To nr_of_zeros + 1 'create textboxes
Set ctextbox = Controls.Add("forms.textbox.1", test1) 'creating textbox
With ctextbox 'scaling textbox
.Height = 20
.Width = 40
.Top = 40 + 25 * test1
.Left = 400
End With
所以文本框將有多少名的test1
(整數或長?)。
我嘗試了下面的句子,試圖將文本框的值讀入:absorb_text
但目前爲止還沒有成功。有沒有人知道調用上面創建的文本框的正確完整方式?
'ctextbox.name = Controls.Add("forms.textbox.1", test1) 'creating textbox
'absorb_text = forms("textbox").Controls(test1).Value
'absorb_text = forms.("UserForm1").textbox.(test1).value
forms.textbox.1.(test1)
strname = TextBox1(test1).Text
(模擬到,一個不叫細胞 「A2」 通過)
.range("A2")
但
Thisworkbook.worksheets("sheetname").range("A2").text
Thisworkbook.worksheets("sheetname").range("A2").value
Thisworkbook.worksheets("sheetname").cells(2,1).text
Thisworkbook.worksheets("sheetname").cells(2,1).value
非常感謝您!我仍然想知道爲什麼/ 1
在"forms.textbox.1"
中做了什麼,因爲它的工作原因,但它被它的功能弄糊塗了。
同樣根據您的討論如下:我相信,從技術上說,代碼不會查找等於/號1
的控件名稱,而是查找恰好等於字符1的字符串字符。不等於一個數字而是一個字符。
*反對的論點是,它仍然適用於:`如果ctrl.Name = 1那麼'在這種情況下,我會認爲1被視爲一個數字。
嘗試以下 –