최근에는 특정 문서에서 시간을 절약하기 위해 VBA에서 Word 매크로를 코딩하는 작업을 수행했습니다. 아이디어는 첫 번째 열의 숫자 문자열을 기반으로하는 절차로 표의 두 번째 열을 채우는 것입니다. 나는 잘 작동하는 첫 번째 열을 읽는 한 함수가 있습니다. 해당 데이터가 들어있는 배열을 다른 함수에 전달합니다. 내가 올바르게 지나가고 있음을 확인했습니다. 내 문제는 내가 두 번째 열에 대한 배열을 첫 번째 column.I 배열을 기반으로 채우려고하면 구조의 배열을 일종의 "키; 역할을합니다. 은 "키"의 각 요소는이 비슷한 모양의 한 구성원 및 another.This 기능과 해당 절차로 첫 번째 열을 비교하는 숫자의 문자열을 포함합니다 :조건부로 배열 채우기
Sub myFunction(ByRef codesFromTable() As String, ByRef procedures() As String)
Dim key(3) As myType
Dim x As Integer
Dim y As Integer
key(0).code = "1234"
key(0).procedure = "Procedure 1"
key(1).code = "2345"
key(1).procedure = "Procedure 2"
key(2).code = "3456"
key(2).procedure = "Procedure 3"
For x = 0 To 5
For y = 0 To 2
If StrComp(codesFromTable(x), key(y).code = 0 Then
procedures(x) = key(y).procedure
Next y
Next x
I가이 코드를 테스트 할 때마다 테이블의 경우 프로 시저 배열은 키 배열의 마지막 요소에있는 정보로 완전히 채워집니다. 모든 입력은 가치 있고 인정 될 것입니다.
가 (1) 라인에서 "에서는 StrComp (codesFromTable (X), 키 (Y) .CODE가) 그런 경우""에서는 StrComp는"0을 반환
:
다음 x와 다음 y를 사용 – Whome
@Whome 이것이 실제로 달라질까요? Next 키워드는 루프의 카운터를 증가시키기위한 것입니다. 또한 카운터가 증가하고 마지막 반복의 데이터가 프로 시저 배열의 모든 요소에 할당되는 것처럼 보입니다. 어쨌든, 귀하의 의견에 감사드립니다. 나는 이것을 내일 시험하고 후속 조치 할 것이다. – MisterTophatJones