2016-08-11 2 views
0

루프 중에 숫자를 배열에 추가하려는 Excel/VBA 매크로를 설정 중입니다. 그러나 배열을 매크로 사용에서 매크로 사용 (예 : 화요일에 매크로를 실행할 때 배열이 [1,3,5]로 채워져 있고 수요일에 매크로를 다시 실행하고 추가 할 경우 8,9 및 10이면 배열은 [1,3,5,8,9,10]이어야합니다). VBA에서이 작업을 수행 할 수 있습니까 (엑셀 시트 전체가 닫히고 나중에 다시 열리더라도 닫히기 전에 저장 되더라도)?매크로가 종료되면 변수가 유지됩니까?

+4

아니. 문서 속성이나 숨겨진 시트와 같은 어딘가에 그것을 집어 넣어야합니다. – Comintern

+0

CustomXMLParts를 사용하면 워크 시트가 아닌 파일 내에 데이터를 저장할 수 있습니다. https://stackoverflow.com/questions/31300173/how-to-embed-large-max-10mb-text-files-into-an-excel- 파일/31305606 # 31305606 –

답변

2

정적 키워드를 사용하여 매크로를 선언하면 매크로의 변수는 함수 호출간에 값을 유지합니다. 그러나 통합 문서를 닫으면이 값이 지워집니다.

또는 통합 문서 이름 컬렉션에 배열을 저장할 수 있습니다.

enter image description here

Function getArrayFromName(name As String) 
    Dim s As String 
    On Error Resume Next 
    s = ThisWorkbook.Names(name) 
    s = Mid(s, 3, Len(s) - 3) 
    On Error GoTo 0 

    getArrayFromName = Split(s, ",") 

End Function 

Sub setArrayFromName(name As String, value As Variant) 
    ThisWorkbook.Names.Add name, value, False 
End Sub 
관련 문제