1
궁극적으로 텍스트 파일에 범위를 쓰려고합니다. 범위의 값을 얻으면 2 차원 변형 배열을 반환합니다. 그러나 변환 함수에 전달하려고하면 형식 불일치 오류가 발생합니다.변형 배열을 구분 된 문자열로 변환하려고 시도 할 때 항상 형식이 일치하지 않습니다.
코드는 다음과 같습니다
Dim Data As String
Set ts = fso.CreateTextFile("testfile.txt", True)
Data = ArrayToDelimitedString(wksMyWorkSheet.Range("rngMyRange").Value)
ts.Write (Data)
ts.Close
Public Function ArrayToDelimitedString(variantArray() As Variant) As String
Dim delimitedString As String, index As Integer
For index = 1 To UBound(variantArray(1))
delimitedString = delimitedString & CStr(variantArray(1, index)) & ","
Next
ArrayToDelimitedString = Left(delimitedString, Len(delimitedString) - 1)
End Function
.Value는 2 차원 배열을 반환하는 이유가 궁금하네요 그리고 왜 나에게이 불일치 오류를주고있다.
wksMyWorkSheet.Range ("rngMyRange"). 값 는 3D 어레이 (변형 객체를 포함하는 변형)을 반환합니다. 어떤 종류의 범위를 사용하고 있습니까? 행? 칼럼? 지역? –
범위가 한 행입니다. 3D 배열입니까? 코드를 단계별로 살펴보면 현지인은 Variant/Variant (1 : 1, 1 : 7)임을 알 수 있습니다. 죄송합니다. VBA를 한 달 동안 사용해 왔으므로 너무 익숙하지 않습니다. – rcell
음, Range 메서드는 항상 3D Array를 반환합니다. 3D 배열로 Transpose 메서드를 사용하려고하면 요소 행렬이 바뀝니다 (필요한 요소가 아닙니다). 그러나 단일 행이나 열의 경우 데이터 유형을 변형/변형 (1에서 1, 1에서 7)에서 변형/문자열로 변경합니다. –