반응형
어레이의 각 루프에 대해를 사용하려면 어떻게 해야 합니까?
문자열 배열:
Dim sArray(4) as String
배열 내의 각 문자열을 확인합니다.
for each element in sarray
do_something(element)
next element
do_something
파라미터로서 문자열을 받아들인다.
요소를 문자열로 전달하는 동안 오류가 발생했습니다.
ByRef 인수 불일치
요소를 문자열로 변환해야 합니까?
요소는 변형이어야 하므로 문자열로 선언할 수 없습니다.ByVal을 전달하면 문자열인 경우 함수에서 변형을 허용해야 합니다.
Public Sub example()
Dim sArray(4) As string
Dim element As variant
For Each element In sArray
do_something element
Next element
End Sub
Sub do_something(ByVal e As String)
End Sub
다른 옵션은 전달하기 전에 배리언트를 문자열로 변환하는 것입니다.
do_something CStr(element)
각 루프 구조의 는 컬렉션 오브젝트를 중심으로 설계됩니다.A의 경우...각 루프에는 다른 유형 또는 개체가 필요합니다."element" 변수가 변형으로 입력되기 때문에 "do_something" 함수는 변형 유형을 수용해야 합니다. 또는 다음과 같이 루프를 수정할 수 있습니다.
Public Sub Example()
Dim sArray(4) As String
Dim i As Long
For i = LBound(sArray) To UBound(sArray)
do_something sArray(i)
Next i
End Sub
핑크가 제안하는 카운터 변수를 사용합니다.For Each와 ByRef를 전달하려면(긴 문자열에 더 효율적일 수 있음) CStr을 사용하여 요소를 문자열로 캐스팅해야 합니다.
Sub Example()
Dim vItm As Variant
Dim aStrings(1 To 4) As String
aStrings(1) = "one": aStrings(2) = "two": aStrings(3) = "three": aStrings(4) = "four"
For Each vItm In aStrings
do_something CStr(vItm)
Next vItm
End Sub
Function do_something(ByRef sInput As String)
Debug.Print sInput
End Function
다음과 같은 간단한 inArray 함수는 어떻습니까?
Function isInArray(ByRef stringToBeFound As String, ByRef arr As Variant) As Boolean
For Each element In arr
If element = stringToBeFound Then
isInArray = True
Exit Function
End If
Next element
End Function
이 경우에 대해 다른 대안이 받아들여진다면, 저는 UBound를 제안:
For i = 1 to UBound(nameofthearray)
your code here
next i
언급URL : https://stackoverflow.com/questions/4228137/how-can-i-use-a-for-each-loop-on-an-array
반응형
'programing' 카테고리의 다른 글
How to create a link inside a cell using EPPlus (0) | 2023.04.10 |
---|---|
bash 스크립트에서 파일 이름 확장자를 확인하는 방법 (0) | 2023.04.10 |
Swift 포함기존 UIKit 응용 프로그램의 UI 보기 (0) | 2023.04.10 |
오브젝트 속성을 기반으로 오브젝트 목록을 정렬하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
Git에서 이전(마지막이 아님) 커밋에 변경된 파일을 추가하는 방법 (0) | 2023.04.10 |