저는 VBA를 처음 사용합니다. 사용자가 다른 사용자 형식의 2 차원 배열에서 입력을 변경할 수있는 옵션을 제공하는 프로그램을 작성했습니다.VBA Excel 2013 : 다른 사용자 정의 폼에서 배열 값 할당
첫 번째 사용자 양식 인 UserForm1은 사용자가 텍스트 필드의 정보를 입력하고 Save 명령 단추를 누를 때 해당 배열 행 i에 저장합니다.
사용자가 확인 명령 단추를 누르면 다른 데이터 집합을 추가할지 묻는 메시지가 나타납니다. 그들이 아니오라고 말하면 데이터를 변경할지 묻는 메시지가 나타납니다. 그들이 yes라고 말하면 다른 사용자 양식 인 UserForm2가 열립니다.
UserForm1을위한 코드는 아래의 코드와 유사하다 :
는 UserForm2에서Public MyArray as Variant, i as Integer
Sub Userform_Initialize()
ReDim MyArray(100,4)
End Sub
Sub SaveButton_click()
MyArray(i, 1) = TextField1.Value
MyArray(i, 2) = TextField2.Value
MyArray(i, 3) = TextField3.Value
MyArray(i, 4) = TextField4.Value
End Sub
Sub OKButton_click()
If msgbox("Do you want to add more data?", vbYesNo) = vbNo Then
If msgbox("Do you have corrections to be made?",vbYesNo) = vbYes Then
Load UserForm2
UserForm2.Show
Else: Exit Sub
End If
Else: i = i + 1
Exit Sub
End If
End Sub
, 사용자는 콤보 박스에서 난을 행 번호를 선택한다. 행 번호를 선택하면 배열 정보가 UserForm1의 텍스트 필드에 자동으로 채워집니다.
사용자가 저장 명령 단추를 누르면 텍스트 필드의 정보를 전달하여 해당 행에 기록해야합니다.
는 UserForm2에 대한 코드는 아래의 코드와 유사하다 : 코드를 통해 스테핑
Public j as integer
Sub Userform_Initialize()
For j = 1 to UserForm1.i
ComboBox1.AddItem (j)
Next
End Sub
Sub SaveButton_click()
UserForm1.MyArray(ComboBox1.Value, 1) = TextField1.Value
UserForm1.MyArray(ComboBox1.Value, 2) = TextField2.Value
UserForm1.MyArray(ComboBox1.Value, 3) = TextField3.Value
UserForm1.MyArray(ComboBox1.Value, 4) = TextField4.Value
End Sub
, 경우 MyArray의 값이 제대로 참조해야한다, 나는 처음에 UserForm1을에서 저장 값을 볼 수 있습니다. 그러나 다음 줄로 가면서 값이 변하지 않습니다.
누구에게도 내 문제에 대한 해결책이 있습니까? 당신의 도움에 미리 감사드립니다!