2009-03-13 5 views
3

Excel 2007의 통합 문서 이름은 메모리로만 크기가 제한되지만이 경우는 그렇지 않습니다. 결과적으로 이름에 저장된 배열은 저장하려고 할 때 충분히 커질 것입니다. "이 통합 문서의 수식 중 하나 이상이 8192 자 제한보다 큽니다. 이진 파일로 저장하십시오."Excel 2007 통합 문서 란 무엇입니까? 이름 크기 제한? 왜?

좋아, 그럼 이진 파일 형식으로 저장 ...하지만 심지어 여기에, 배열은 파일을 불가능하게 저장할 수 있도록 충분히 커질 수 있습니다.

무엇을 제공합니까? 이런 경우 Excel에서 이름이 어떻게 저장됩니까? 이 것이 설치에 특별한 것입니까? 주위에 방법이 있습니까?

아래 코드를 사용해보십시오. 그것은 완벽하게 실행되며 이름이 적절하게 채워지지만 저축은 당신에게 somenasty 오류를 줄 것이다. 3351 요소가 너무 많지만 3350은 잘 저장됩니다.

Public Sub TestNameLimits() 
    Dim v As Variant 
    ReDim v(1) 

    Dim index As Integer 

    For index = 1 To 3351 
     ReDim Preserve v(index) 
     v(index) = "AAAA" 
    Next 

    Call Application.Names.Add("NameLimit", v) 

End Sub 

답변

1

이름 컬렉션은 매우 오랫동안 사용 된 Excel의 기능입니다. Excel 2003의 수식 길이 제한은 1,024 (2^10)이지만 Excel 2007에서는 8,192 (2^13)로 확장되었습니다.

이 두 기사

엑셀 2003과 엑셀 2007 기본 크기 제한에 대해 설명합니다

Excel 2003 specifications and limits

Excel 2007 specifications and limits

는이 문제를 해결하기 위해, 나는 Excel.Worksheet.CustomProperties 컬렉션을 살펴 것이다. 나는 Worksheet.CustomProperties 항목 크기가 메모리에 의해서만 제한된다고 생각한다. 이 시스템을 테스트 해보아야 할 것입니다. 아마도 다양한 버전의 Excel에서도 테스트 할 수 있지만 10,000,000자를 쉽게 저장할 수 있어야합니다.

그러나 Worksheet.CustomProperties 컬렉션을 사용하면 배열을 문자열로 자동 변환 할 수있는 Names 컬렉션과 달리 배열을 자신과 문자열간에 변환해야합니다.

+0

링크가 깨졌습니다. 올바른 링크가 무엇인지 알 수 있습니까? –

관련 문제