여러 장의 통합 문서가 하나 있습니다. 두 번째 시트의 목록 상자 (셀에서 정적 데이터 가져 오기)를 채우고 단추를 클릭하면 제대로 실행됩니다.명명 된 범위 나누기 코드
목록 상자에 명명 된 범위를 채우면 목록 상자에 원하는 방식으로 채워지지만 코드에서 목록 상자에서 아무 것도 선택하지 않았다고 생각하기 때문에 오류가 발생합니다. 따라서 "title"대신 ""를 통과합니다.
이것은 일반적인 문제입니까? 명명 된 범위는 데이터를 목록 상자로 전달하기 때문에 문제가되지 않으며 목록 상자에 포커스가 없어지면 셀의 내용을 셀 A1에 내뱉기 때문에 데이터를 선택한다는 것을 알았습니다.
목록 상자의 내용을 Msg1로 설정 한 것이 낯선 것은 무엇입니까? 그래서 A1은 Msg1 (실제로 목록 상자에서 선택한 것)으로 채워집니다. 하지만 코드에서 Msg1을 사용하려고하면 Msg1이 ""라고 알려줍니다. 다시 말하지만, 이것은 동적 명명 된 범위를 사용할 때만 발생하며 K1 : K9 셀의 정적 데이터와는 다릅니다. 문자열
희미한 STRSQL로
개인 기능 strEndSQL1로 문자열
strSQL = ""
'Create SQL statement
strSQL = "FROM (SELECT * FROM dbo.Filter WHERE ID = " & TextBox1.Text & " And Source IN (" & Msg1 & ")) a FULL OUTER JOIN "
strSQL = strSQL & "(SELECT * FROM dbo.Filters WHERE ID = " & TextBox2.Text & " And Source IN (" & Msg1 & ")) b "
strSQL = strSQL & "ON a.Group = b.Group
strEndSQL = strSQL
최종 기능
목록 상자를 읽는 코드를 표시하십시오. –
시트 특정 명명 된 범위를 사용했거나 통합 문서에 중복 된 명명 된 범위가있을 수 있습니다. –
글쎄, 나는 목록 상자에서 잘 작동하도록 명명 된 범위를 얻을 수 있었다. (목록 상자에서 선택을 클릭하자마자 포커스를 잃을 때가 아니라 A1이 채워진다.). 이름있는 범위 또는 목록 상자의 설정에서 뭔가 있다고 생각할 수 있지만이를 고정 할 가능성이 너무 많습니다. –