2011-09-28 3 views
1

나는 변수에 할당 콤보 상자가 있습니다분할 VB에서 문자열

Dim var as String = ComboBox1.SelectedValue 
Dim name As String = var.Split(",") 

이 나에게 '문자열의 1 차원 배열'유형의

값 오류를 제공 할 수 없습니다 문자열로 변환

내가 잘못 가고있는 것에 대한 아이디어가 있습니까?

+1

이 vb.net 또는 vb6이 맞습니까? –

+1

@Lance, VB6은 표시된 이니셜 라이저를 지원하지 않습니다. –

+0

@agent, 감사합니다. 저는 VBA를 주로 사용하며 VB6이 성공했는지 여부는 확실하지 않았습니다. –

답변

4

스플릿은 배열 문자열을 반환합니다. 변수를 단일 문자열뿐만 아니라 배열로 변경해야합니다.

1

이름을 배열로 선언해야합니다.

dim name() as string = var.split(",") 

split() 메서드는 지정된 문자를 기반으로 문자열을 분리하고 새로 만든 각 문자열을 배열에 넣고 반환합니다.

Value of type '1-dimensional array of string' cannot be converted to String 

방법은 문자열의 배열을 반환하지만 그냥 문자열로 넣어하려고 :

이는 오류 메시지가 당신에게 말하고있는 것입니다!

편집 : 답변에 대응하여 ... 지금까지 당신이 분할 방식으로 문자열을 직접 분할 관리했습니다

. 출력이 귀하의 메시지 상자에, 당신은 올바른 순서로 두 요소를 연결하는 필요

msgbox(name(1) & " " & name(0)) 

공지 사항 내가 두 번 배열을 인덱스! 요소 1은 이름이고, 요소 0은 성입니다. lname, fname 형식으로이 이름을 기억하십시오. 배열 자체를 전달하는 것은 의미가 없습니다! 데이터 유형이 해당 유형의 배열과 같지 않다는 점을 기억하십시오. 두 가지가 다릅니다. 따라서 문자열은 문자열 배열과 호환되지 않습니다. 그러나 배열의 각 요소는 문자열이므로 각 요소는 문자열 유형과 호환됩니다 (동일한 요소이기 때문에).

+0

배열 값에 Name을 추가하면 오류가 발생합니다. " 'DataRowView'형식에서 'String'형식으로의 변환이 올바르지 않습니다." 이 런타임에 "Dim var As String = ComboBox1.SelectedValue"- – user765942

+0

@ user765942 .ToString() 메서드를 호출하여 SelectedValue를 문자열로 변환합니다. – MGZero

+0

ToString() 메서드를 사용했지만 im이 실행될 때이 오류가 발생합니다 ... " '프롬프트'인수를 'String'유형으로 변환 할 수 없습니다." 이것은 메시지 상자에 결과를 표시하려고 할 때입니다. - MsgBox (name) – user765942

1

내 VB 조금 녹슨이지만, 난 당신이 name을 배열 할 생각 :

Dim name() As String = var.Split(",") 
+0

배열 값에 Name을 추가하면 오류가 발생합니다. " 'DataRowView'형식에서 'String'형식으로의 변환이 올바르지 않습니다." 이것은 런타임에 "Dim var As String = ComboBox1.SelectedValue"입니다. – user765942

+2

'Dim var as String = ComboBox1.SelectedValue'를 'Dim var as String = ComboBox1.SelectedValue.ToString'으로 바꿉니다. – Blender

0

아니면을 "이름"배열이 아닌 및 목표는 모든 것을 "이름"을 채울 것입니다 첫 번째 쉼표까지 수정하십시오.이 경우 수정본은 다음과 같습니다.

Dim name as String = var.Split(",")(0) 

참고 : var가 Nothing이 아니라고 가정합니다.

1
Dim var As String = ComboBox1.SelectedValue 
Dim temp() As String = Split(var, ",", -1, CompareMethod.Binary) 
Dim name As String = temp(0)