현재 배열과 루프를 사용하고 있으며 숫자가 {1, 2, 3 인 n 행 m 열 (행렬)을 출력하는 함수를 작성하려고합니다. , ..., n * m}VBA - n 행렬을 만드는 함수
저는 기본적인 VBA 코드를 배우려고합니다. 이것은 교육 목적으로 만 사용됩니다.
이Function createMatrix(n, m)
Dim matrix(1 To n, 1 To m) As Integer
x = 1
For i = 1 To n
For j = 1 To m
matrix(i, j) = x
x = (x + 1)
Next j
Next i
createMatrix = matrix
End Function
그것은 #VALUE
를 반환 내가 가지고 올 것을
이입니다. 이유를 이해할 수 없습니다.
제가
Dim matrix(1 to 3, 1 to 3) As Integer
를위한에 n
및 m
대체하여 매트릭스 어레이를 초기화 한 후 어떤 변수를 고려하지 않는 기능을하고 하나 개의 포인트 (3 × 3 행렬을 생성)에서 작동 할있어 3s와 루프.
그래서 변수 n
과 m
이 문제를 일으키고 있지만 그 이유를 모르겠습니다.
'''Dim matrix (1 To ..., 1 To ...)''와 같은 배열 선언을 사용할 수 있습니다.'''Dim matrix (1 to 3) , 1 to 3)'''가 작동하고 배열에는 3 개의 행과 3 개의 열이 있습니다. 그러나 변수''n, m''과 같이 (1 To n, 1 To m) ReDim을 사용해야합니다. 이는 Reason을 @Jason Faulkner와 @Leni Ohnesorge의 답변에 표시해야합니다. 한가지 더,'''#VALUE! ''를 얻으면 오류가 매개 변수의 구분 기호를 검사합니다. 구분 기호는 쉼표 또는 세미콜론으로 지정할 수 있습니다. 쉼표로 셀'''= createMatrix (3,3)'''mit 세미콜론''= createMatrix (3; 3)'''에서'''Shift + Ctrl + Enter를 입력하십시오. – dee
세미콜론은 배열 상수의 행을 구분하기위한 것이지만 여기서 함수는 * dimensioing *에 대한 정수 인수를 기대하며 * 배열에 값을 전달하지 않습니다. – ThunderFrame