Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Excel VBA 환경에서 jsl 스크립트를 실행해 보십시오. 스크립트의 목적은 두 개의 csv 데이터 테이블을 열고 함께 결합하는 것입니다.
스크립트는 아래와 같습니다.
하위 loadData()
myjmp를 JMP.Application으로 흐리게 표시
Dim jmp_doc As JMP.Document
Dim jmp_BL As JMP.DataTable
Dim jmp_dt As JMP.DataTable
Dim jmp_dtFinal As JMP.DataTable
Dim jmpstr을 문자열로
myjmp = CreateObject("JMP.Application") 설정
myjmp.Visible = 참
jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\BL.csv") 설정
jmp_BL = jmp_doc.GetDataTable 설정
jmp_doc = myjmp.OpenDocument("C:\Users\xxxxx\Desktop\cbData.csv") 설정
jmp_dt = jmp_doc.GetDataTable 설정
jmpstr = "jmp_dtFinal= jmp_dt << Join(With(jmp_BL),Merge Same Name Columns,By Matching Columns( :col1 = :col2, :col2= :col2),Drop multiples( 0, 1 ),Name( ""Include 일치하지 않는 항목"" )(1, 1),);"
myjmp.RunCommand jmpstr
두 개의 데이터 테이블을 올바르게 열 수 있지만 조인 기능만 작동하지 않습니다. 아무도 스크립트를 도울 수 있습니까?
감사합니다!
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?예, JMP 13에 추가될 예정입니다. 감사합니다.
브라이언
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?, 다음 jmp 버전에 추가되기를 바랍니다.
감사합니다!
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?죄송하지만 해당 옵션은 아직 자동화에 적용되지 않았습니다.자동화를 사용하여 결과 테이블의 열을 삭제할 수 있습니다.또한 기존 테이블 중 하나로 테이블 병합을 수행해도 괜찮다면 대신 UpdateTable을 사용할 수 있습니다.
브라이언
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?안녕, 브라이언
귀하의 정보에 감사드립니다.
이 데이터 조인에 대해 질문이 하나 더 있습니다. 아래와 같이 Join Match Options를 설정하여 기본 테이블과 with 테이블 모두에서 다중 및 cinlude 비 일치 항목을 삭제합니다.
DT4.SetJoinMatchOptions 거짓, 참
DT5.SetJoinMatchOptions 참, 참
하지만 결과는 아래와 같이 나오며, 이 두 테이블이 조인된 것 같지만 같은 이름의 열과 병합되지 않은 것 같습니다.

일반적으로 jmp 데이터 테이블 조인 설정에는 "동일한 이름 열 병합" 옵션이 하나 있습니다. 이 옵션을 선택하면 테이블이 같은 이름의 열을 병합합니다. 그러나이 VBA 조인 기능에서 :
Set NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "조인 테이블")
그런 설정이 없습니다.
그래서 "nerge same name column"의 기능을 달성하는 방법을 알고 있습니까?
감사합니다!

Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?안녕,
개체에 대한 "Set" 사용은 VB를 사용할 때 Visual Studio에서 선택 사항일 수 있으므로 샘플에서 항상 사용하지는 않습니다.또한 2010과 같은 초기 버전의 Visual Studio에서 사용하도록 작성되었습니다. 분명히 Excel의 VBA에는 고유한 구문이 있습니다.귀하의 경우에는 SetJoinMatchOptions 옵션 주위에 괄호가 필요하지 않습니다.대안은 앞에 호출을 사용하는 것입니다.다음은 내 Excel 2013의 작업 샘플입니다.
'두 번째 예는 두 개의 유사한 열에서 일치하는 열을 사용하는 조인입니다.
'데이터 테이블.
Dim Doc4 As JMP.Document
Dim Doc5 As JMP.Document
NewDT2를 JMP.DataTable로 흐리게 표시
JMP.DataTable로 DT4 어둡게 하기
JMP.DataTable로 DT5 흐리게 하기
MyJMP = CreateObject("JMP.Application") 설정
MyJMP.Visible = 참
Set Doc4 = MyJMP.OpenDocument("C:\Program Files\SAS\JMP\13\Samples\Data\Ingots.jmp")
Doc5 = MyJMP.OpenDocument("C:\Program Files\SAS\JMP\13\Samples\Data\Ingots2.jmp") 설정
DT4 = Doc4.GetDataTable 설정
DT5 = Doc5.GetDataTable 설정
DT4.AddToJoinMatchList (("열"))
DT4.AddToJoinMatchList (("흡수"))
' 배수를 삭제하고 일치하지 않는 항목을 포함하지 않도록 옵션을 설정합니다.
DT4.SetJoinMatchOptions 참, 거짓
DT5.AddToJoinMatchList (("열"))
DT5.AddToJoinMatchList (("흡수"))
DT5.SetJoinMatchOptions 참, 거짓
Set NewDT2 = DT4.Join(DT5, JMP.dtJoinConstants.dtJoinMatching, "조인 테이블")
브라이언
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?안녕, 브라이언
제가 명확하게 설명하지 않았을 수도 있습니다.
Data Table .NET의 예제를 사용하여 테이블을 조인하려고 할 때 예제가 제대로 작동하지 않는다는 것을 알았습니다.
예를 들어:
데이터 테이블을 열 때 아래 스크립트만 사용할 수 없습니다.
Dim Doc4 As JMP.Document
JMP.DataTable로 DT4 어둡게 하기
Doc4 = MyJMP.OpenDocument(tempDir & "cbData.csv")
DT4 = Doc4.GetDataTable
대신 아래와 같이 스크립트를 구걸할 때 Set을 추가해야 합니다.
세트 Doc4 = MyJMP.OpenDocument(tempDir & "cbData")
세트 DT4 = Doc4.GetDataTable
그런 다음 두 데이터 테이블을 모두 올바르게 가져올 수 있습니다.
아래 스크립트를 사용할 때 조인 일치 옵션을 설정하려면 다음을 수행하십시오.
DT4.SetJoinMatchOptions(참, 거짓)
항상 오류가 있습니다. 이것을 변수로 보내야 하는 것 같습니다. 그러나 "의 반환 값 유형이 무엇인지 잘 모르겠습니다. DT4.SetJoinMatchOptions(참, 거짓) ". 아래와 같이 스크립트를 변경할 수 있습니다.
xxxxxx로 희미한 문자열
설정 str= DT4.SetJoinMatchOptions(참, 거짓)
내 가정이 맞는지 확실하지 않습니다. 이 JoinMatchOptions가 어떻게 설정될 수 있는지 모르겠습니다.

Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?예제와 같이 0과 1이 아닌 False와 True를 전달합니다.그러나 DT4용 데이터 가져오기에 문제가 있을 가능성이 더 큽니다. 해당 테이블을 성공적으로 가져왔는지 확인하기 어렵습니다.
브라이언 코코란
JMP 개발
Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?안녕, 브레인
귀하의 정보에 감사드립니다.
이것은 저에게 도움이 됩니다. Data Table .NET을 참조할 때 또 다른 문제가 발생합니다. Data Table .NET에 몇 가지 예가 있습니다. 그리고 예제를 따라 스크립트를 완성합니다.
아래는 DATA 테이블의 예입니다. 그물
비슷한 방식으로 사용하려고 시도하지만 JoinMatchOptions를 설정할 때 항상 오류가 있는 것 같습니다. 이 스크립트에 변수를 설정해야 할 것 같습니다.
이 JoinMatchOptions에 대한 도움말 정보를 찾을 수 없습니다. JMP 자동화를 활성화하기 위한 설정을 놓친 것인지 확실하지 않습니다. 참조에 이미 모든 JMP 관련 항목이 포함되어 있습니다.


Re: Excel VBA에서 jsl 스크립트를 실행하는 방법은 무엇입니까?안녕,
JSL과 자동화 간에 개체 참조를 혼합할 수 없습니다. 데이터 테이블과 같은 개체를 참조해야 하는 경우 자동화에서 모두 수행하거나 모두 JSL에서 수행해야 합니다.Datatable 개체에 사용할 수 있는 자동화 Join 메서드가 있습니다.조인하려는 열을 추가하는 "AddToJoinList" 메서드도 있습니다.자동화 참조 가이드와 JMP와 함께 제공되는 Datatable 자동화 샘플 프로그램이 이에 도움이 될 수 있습니다.JMP 12의 경우 샘플 프로그램은 C:\Program Files\SAS\JMP\12\Samples\Automation\Visual Basic Samples\Data Table .NET에서 사용할 수 있습니다. 자동화 참조 안내서인 "Automation Reference.pdf"는 C:\Program Files\SAS\JMP\12\Documentation에서 사용할 수 있습니다.
도움이 되길 바랍니다.
브라이언 코코란
JMP 개발