检索工作表中的文本框的第二行
亲爱的,我试图检索工作表中的文本框的第二行,
例如:
蓝色
Mika Ralf
23.05
我想复制的名称,并在我的macros的其他部分使用它的文本框中创build插入文本框和名称是TextBox 17非常感谢您的帮助,
不pipe你的TextBox是一个ActiveX控件还是一个Form控件:
从它的名字(“TextBox 17”有一个空格),我会说这是一个表单控件
无论如何,这里是两种可能性的代码
Form控件的解决scheme
Function GetStringFromTextBox_Form(textBoxName As String, strngPos As Integer) As String With ActiveSheet.Shapes(textBoxName).TextFrame.Characters GetStringFromTextBox_Form = Split(.Text, "")(strngPos - 1) End With End Function
使用如下
Sub main() Dim name As String name = GetStringFromTextBox_Form("TextBox 17", 2) '<~~ use this if your TextBox is a Form Control MsgBox name End Sub
ActiveX控件的解决scheme
Function GetStringFromTextBox_ActiveX(textBoxName As String, strngPos As Integer) As String With ActiveSheet.OLEObjects(textBoxName).Object GetStringFromTextBox_ActiveX = Split(.Text, vbCrLf)(strngPos - 1) End With End Function
使用如下
Sub main() Dim name As String name = GetStringFromTextBox_ActiveX("TextBox17", 2) '<~~ use this if your TextBox is an Active X Control MsgBox name End Sub
使用Split
将文本框的所有行都放入数组中:
Dim lines() As String 'Split lines of the textbox into array and remove line breaks lines = Split(Replace(Me.txtTest.Value, Chr(13), ""), Chr(10)) 'print line 2 Debug.Print lines(1)
或者如果你真的只需要第二行:
Debug.Print Split(Replace(Me.txtTest.Value, Chr(13), ""), Chr(10))(1)
这里你直接访问Splitfunction的第二个元素(就像数组)
将Me.txtTest
replace为文本框的名称。