我有我分配给一个变量组合框:分裂在VB字符串
Dim var as String = ComboBox1.SelectedValue
Dim name As String = var.Split(",")
这给我的错误类型“串的1维阵列”的
值不能为转换为字符串
任何有关我哪里出错的想法?
我有我分配给一个变量组合框:分裂在VB字符串
Dim var as String = ComboBox1.SelectedValue
Dim name As String = var.Split(",")
这给我的错误类型“串的1维阵列”的
值不能为转换为字符串
任何有关我哪里出错的想法?
Split返回字符串的数组。您的变量需要更改为数组,而不仅仅是一个字符串。
名称需要声明为一个数组。
dim name() as string = var.split(",")
的分裂()方法将分手基于给定字符的字符串,并把每个新创建的串到一个数组并返回它。
这是你的错误信息告诉你:
Value of type '1-dimensional array of string' cannot be converted to String
该方法返回一个字符串数组,但你试图把它变成只是一个字符串!
编辑:在回答你的答案......
到目前为止,您已经成功地用自己的拆分法拆分字符串。要输出给你的消息框,您需要连接的两个元素以正确的顺序:
msgbox(name(1) & " " & name(0))
通知我索引的阵列的两倍!元素1是第一个名字,元素0是最后一个名字。请记住,你的名字是lname,fname格式。传递数组本身并不合理!请记住,数据类型不等于该类型的数组,它们是两个不同的东西。因此,字符串与字符串数组不兼容。但是,数组中的每个单独元素都是一个字符串,因此每个元素都与字符串类型兼容(因为它们是相同的东西)!
当我将Name添加到数组值时,我现在正在收到错误。 “从类型'DataRowView'转换为类型'String'无效。”这是在“Dim var As String = ComboBox1.SelectedValue”行上的运行时 - – user765942
@ user765942通过调用它的.ToString()方法将SelectedValue转换为字符串。 – MGZero
我已经习惯了ToString()方法,但是现在我在运行时遇到了这个错误...“参数'Prompt'无法转换为类型'String'。”这是当我尝试并显示在消息框中的结果 - MsgBox(名称) – user765942
我VB是有点生疏,但我认为你必须作出name
数组:
Dim name() As String = var.Split(",")
当我将名称添加到数组值时,我现在正在收到错误。 “从类型'DataRowView'转换为类型'String'无效。”这是在运行时在“Dim var As String = ComboBox1.SelectedValue” – user765942
用'Dim var as String = ComboBox1.SelectedValue.ToString'替换'Dim var as String = ComboBox1.SelectedValue'。 – Blender
或者,也许“名”是不是数组,目标是填充“名”的一切直到第一个逗号为止,在这种情况下,修正为:
Dim name as String = var.Split(",")(0)
注意:假定var不是Nothing。
Dim var As String = ComboBox1.SelectedValue
Dim temp() As String = Split(var, ",", -1, CompareMethod.Binary)
Dim name As String = temp(0)
这是vb.net还是vb6? –
@Lance,VB6不支持显示的初始值设定项。 –
@agent,谢谢,我主要用VBA工作,并不确定VB6是否工作。 –