2013-02-25 2 views
1

현재 Excel VBA 응용 프로그램은 25-30 Excel 시트 (모든 시트가 모두 숨겨져 있고 백그라운드 처리를 수행하고 VBA 양식 UI에 표시 함)로 구성되어 있습니다. 우리는 VB 양식을 사용하여 UI를 개발했습니다. 그러나 우리가 직면하고있는 문제는 우리가이 코드를 사용하여 저장 버튼을 클릭 할 때마다입니다 :Excel VBA에서 개별 시트 저장

ThisWorkbook.Save

을하지만 이것은 우리가 전체 통합 문서 및이를 저장 한 장에 변경할 수 있으므로 경우에도 개별 시트를 전체 통합 문서를하지 저장 저장 처리가 매우 느립니다 (변경 사항이 없더라도 많은 양의 데이터가 필요없는 Excel 시트를 모두 저장해야하므로).

제 질문은 전체 엑셀 파일이 아닌 "특정 엑셀 시트에 한 장만 저장할 수있는 방법이 있습니까?

참고 : 저는 Java 개발자이며 전에 VBA에서 일했습니다.하지만 몇 년 전이었고 잊어 버렸습니다. 모든 지침을 부탁드립니다. 또는이 상황을 처리하는 방법에 대한 조언을 주시면 감사하겠습니다. 더 자세한 정보가 필요하면 알려주세요.이 질문을 수정할 수 있습니다.

이미 시도한 바가 있습니까? 어제부터 많은 연구를 했으므로 이전 질문을 검색했지만 유용한 정보는 얻지 못했습니다. 나의 연구에 따르면, 우리는 이것을 할 수 없다고 말합니다. 나는 올바른 길을 가고 있는가?

+0

아니요, 없습니다. – enderland

답변

2

나는 여러 통합 문서로 응용 프로그램을 분할 고려해야한다고 생각합니다 :

  1. 모든 로직, 사용자 양식 및 프로그래밍 코드가 포함 된 통합 문서. 이 통합 문서는 다른 모든 통합 문서 및 해당 통합 문서를 표시합니다. 잠재적으로 이것은 "Application Specific Addin"일 수도 있습니다. 휴면 상태이지만 계속되는 통합 문서가 열리 자마자 활성화됩니다. 이 아키텍처 접근법에 대해서는 "Application Specific Addins"섹션을 this link에서 확인하십시오.

    이 workobook/add-in은 다른 통합 문서를 숨길 수 있으므로 사용자가 여러 통합 문서를 인식하지 못합니다.
  2. 하나 또는 여러 개의 데이터 통합 ​​문서 : 데이터의 연결 방식에 따라 데이터를 분리 할 수 ​​있습니다 (예 :큰 데이터베이스를 포함하는 "판매 데이터"통합 문서에 모든 기본 데이터 (예 : 제품 또는 상점 테이블)가 포함 된 '기본 데이터'통합 문서입니다.

이렇게하면 "관련"시트에 저장하는 것을 줄일 수 있습니다. 그러나 이것은 꽤 많은 재 프로그래밍이 필요합니다. 그러나 예를 들어 프로그래밍으로 파일을 배포하기 만하면되므로 버전간에 데이터를 전송하지 않고도 업데이트/버그 수정을 제공 할 수 있습니다. 논리. :-)

+0

그래, 고마워. –

4

짧은 대답은 아니오입니다. 한 번에 하나의 워크 시트 만 저장할 수는 없습니다.

통합 문서의 데이터 양을 줄이려고 할 수 있습니다. 여러 통합 문서에 데이터를 저장하고 필요한 경우 해당 특정 통합 문서를 열고 필요한 변경을 한 다음 닫습니다.

모든 데이터를 한 번에 액세스해야하는 경우 액세스 또는 다른 데이터베이스 사용을 고려하십시오.

시트에 "빈 데이터"가있을 수도 있습니다. 그 안에 무엇이든 들어 있지 않지만 엑셀 (excel) 한 셀은 절약 할 때 필요한 것보다 더 많은 것을 저장하려고 시도 할 때 그렇게한다고 생각합니다. 현재 통합 문서가됩니다 새 통합 문서를 생성

ActiveSheet.Copy 
ActiveWorkbook.Close True, "path" 

이 복사 현재 워크 시트 :

+0

나는 엑셀 시트에서 1000-2000 행 사이에 있고, 여러 통합 문서가 열리는 것을 보지 않고 백그라운드에서 통합 문서를 열 수 있습니까? –

+0

다른 통합 문서의 워크 시트에 데이터를 저장 한 다음 런타임에 필요한 데이터가있는 통합 문서를 열고 변경 한 다음 닫을 수 있습니까? 불행히도 절대적으로 필요한 경우에만 저장하는 것 이외에 다른 문제에 대한 해결책이 있는지 모르겠습니다. – Ripster

+1

통합 문서를 여러 개 열어도 OK이지만 모든 시트를 숨기고 –

3

당신이 다음과 같이 뭔가를 할 수 저장할 현재 워크 시트가 있다고 가정. 그런 다음 close 메소드를 호출하고 파일 이름을 지정하십시오.

관련 문제