<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, 저는 JMP 11에 포함된 샘플 프로그램을 보고 있습니다.
C:\Program Files\SAS\JMP\11\Samples\Automation\Visual Basic Samples\Data Table .NET\datatab.vb
Visual Studio(Excel만)가 없기 때문에 메모장으로 "datatab.vb"를 열고 "Subset_Click" 프로시저를 VB(Visual Basic)에서 VBA(Visual Basic for Applications)로 변환하려고 했습니다. 아래 코드 예제를 참조하십시오.
몇 가지 질문이 있습니다.
- "doc = app.OpenDocument(fname)"이 런타임 오류 "개체 변수가 설정되지 않음"을 일으키는 이유는 무엇입니까?
- 데이터 테이블 하위 집합 방법은 어떻게 작동합니까? Excel VBA 개체 브라우저에서 볼 수 있지만 자세한 내용은 없습니다.
- 데이터 테이블 핸들은 어떻게 사용됩니까?
당신의 도움을 주셔서 감사합니다.
'------------------------------------------------- -------
'무게와 키로 하위 집합 bigclass
'NewDT에 새 데이터 테이블 핸들을 저장한 다음 테이블을 하위 집합으로 디스크에 저장합니다.jmp
'------------------------------------------------- -------
하위 하위 집합()
앱을 JMP.Application으로 흐리게 표시
문서를 JMP.Document로 흐리게 표시
Dim dt As JMP.DataTable
newDT를 JMP.DataTable로 희미하게 표시
Dim dtDoc JMP.Document로
Dim dir As String
희미한 fname을 문자열로
'JMP 시작
앱 설정 = CreateObject("JMP.Application")
app.Visible = 참
'데이터 테이블 가져오기
dir = "C:\Program Files\SAS\JMP\11\Samples\Data\"
fname = dir & "Big Class.jmp"
문서 = app.OpenDocument(fname)
dt = doc.GetDataTable
'하위 데이터
dt.활성화
dt.SubsetSetRandomSelection(2, False)
dt.SubsetStratifyAddColumn("연령")
dt.AddToSubList("이름")
dt.AddToSubList("가중치")
dt.AddToSubList("높이")
newDT = dt.Subset
dtDoc = newDT.문서
dtDoc.SaveAs("C:\JMP\subset.jmp")
엔드 서브
'------------------------------------------------- -------
와우, JMP 설치 디렉토리에 좋은 것들이 많이 있습니다! Automation Reference PDF의 메서드 설명은 확실히 유용합니다.
내 원래 질문과 관련하여:
- 개체 참조를 변수에 할당하려면 "Set" 키워드가 필요했습니다.
- 귀하의 설명과 사진은 Subset 코드를 이해하는 데 도움이 되었습니다.
다시 한번 감사합니다!
안녕 JB,
JMP 11이 설치된 Documentation 디렉토리에 전체 자동화 참조가 설치되어 있습니다.잘못된 참조를 받는 경우 JMP 시작에 실패했거나(앱 개체가 비어 있음) Big Class 데이터 테이블을 찾을 수 없고 해당 참조가 비어 있음을 의미합니다.JMPPro를 사용하는 경우 디렉토리는 JMP\11이 아니라 JMPPRO\11이 됩니다.다른 JMP 제품도 마찬가지입니다.
이 샘플은 임의 샘플 크기가 2인 하위 집합을 수행합니다. 층화 샘플에 사용되는 연령 열과 함께 층화가 설정됩니다.선택한 열만 출력됩니다.이 경우 이름, 키, 몸무게가 선택된 열입니다.이 작업을 대화식으로 수행하는 경우 이것이 어떻게 보이는지 그림을 첨부하고 있습니다.
이게 도움이 되길 바란다,
브라이언 코코란
JMP 개발