检索工作表中的文本框的第二行

亲爱的,我试图检索工作表中的文本框的第二行,

例如:
蓝色
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.txtTestreplace为文本框的名称。