imagelookup 보조명령어에서 계속 에러(컴파일오류)가....
안녕하세요 오빠두 선생님
Function IsInArray(FindValue As Variant, _
vaArray As Variant, _
Optional ExactMatch As Boolean = True, _
Optional returnType As xlArrayReturnType = rtnValue, _
Optional Dimension As Integer = 0, _
Optional vbCompare As VbCompareMethod = vbTextCompare) As Variant
이 부분에서 에러가 표시 되네요.. 뭐가 잘못되었을까요?
보조명령어 전문을 아래와 같이 해서 s서브모듈에 넣었습니다.
계속 질문드려서 죄송합니다...
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ vbFileSearch 함수
'▶ 지정한 폴더에 특정 확장자를 가진 파일명을 유사일치/정확히 일치로 검색합니다.
'▶ 인수 설명
'_____________FileName : 검색할 파일명입니다.
'_____________LookIn : 조회할 폴더입니다.
'_____________Extension : 특정 확장자만 조회합니다. (쉼표(,)로 구분)
'_____________ExactMatch : 정확히일치 검색 여부입니다.
'_____________withPath : True일 경우 결과값에 폴더경로를 출력합니다.
'▶ 사용된 기타 사용자지정함수
'_____________SplitFileExt 함수
'_____________IsInArray 함수
'_____________ListFiles 함수
'###############################################################
Function vbFileSearch(FileName As String, _
LookIn As String, _
Optional ExactMatch As Boolean = True, _
Optional Extension As String = "", _
Optional withPath As Boolean = True) As String
Dim sFullName As Variant
Dim sExts As Variant: Dim sExt As Variant
Dim vaArr As Variant: Dim vaRtn As Variant
Dim i As Long: Dim j As Long
vbFileSearch = "-1"
If Right(LookIn, 1) <> "\" Then LookIn = LookIn & "\"
vaArr = SplitFileExt(ListFiles(LookIn, False))
vaRtn = IsInArray(FileName, vaArr, ExactMatch, rtnArrayValue, 0)
If TypeName(vaRtn) = "Variant()" Then
If Extension = "" Then
If withPath = True Then vbFileSearch = LookIn & vaRtn(0, 0) & vaRtn(0, 1) Else: vbFileSearch = vaRtn(0, 0) & vaRtn(0, 1)
Else
sExts = Split(Extension, ",")
For Each sExt In sExts
For i = LBound(vaRtn) To UBound(vaRtn)
If StrComp(CStr(vaRtn(i, 1)), CStr("." & Trim(sExt)), vbTextCompare) = 0 Then
If withPath = True Then
vbFileSearch = LookIn & vaRtn(i, 0) & vaRtn(i, 1)
Exit Function
Else
vbFileSearch = vaRtn(i, 0) & vaRtn(i, 1)
Exit Function
End If
End If
Next
Next
vbFileSearch = "-1"
End If
Else
vbFileSearch = vaRtn
End If
End Function
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ SplitFileExt 함수
'▶ 배열 또는 String으로 받아온 확장자가 포함된 파일경로를 파일이름과 확장자로 분리합니다. (2차원 배열, 0 - 파일명, 1 - 확장자)
'▶ 인수 설명
'_____________Files : 확장자를 분리할 배열 또는 파일명입니다.
'###############################################################
Function SplitFileExt(Files As Variant) As Variant
Dim i As Long
Dim sFile As String
Dim vaArr As Variant
On Error GoTo ErrHandler:
'// 파일 타입을 확인합니다. 배열 또는 기타 문자열일 경우
If TypeName(Files) = "Variant()" Then
'// 입력 형식이 배열일 경우
ReDim vaArr(LBound(Files) To UBound(Files), 0 To 1)
For i = LBound(Files) To UBound(Files)
sFile = Files(i)
vaArr(i, 0) = Left(sFile, InStrRev(sFile, ".") - 1)
vaArr(i, 1) = Right(sFile, Len(sFile) - InStrRev(sFile, ".") + 1)
Next
Else
'// 입력 형식이 기타 문자열일 경우
ReDim vaArr(0, 1)
vaArr(0, 0) = Left(Files, InStrRev(Files, ".") - 1)
vaArr(0, 1) = Right(Files, Len(Files) - InStrRev(Files, ".") + 1)
End If
SplitFileExt = vaArr
Exit Function
ErrHandler:
MsgBox "올바른 파일경로 또는 파일명을 입력하세요." & sFile
End
End Function
Option Explicit
Public Enum xlArrayReturnType
rtnSequence = 1
rtnValue = 2
rtnArrayValue = 3
End Enum
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ IsInArray 함수
'▶ 배열안에 선택한 값의 존재여부를 확인합니다. 4가지 값으로 반환 가능합니다. (순번, 값, 배열)
'▶ 인수 설명
'_____________FindValue : 배열에서 찾을 값입니다.
'_____________vaArray : 값을 검색할 배열입니다.
'_____________ExactMatch : 정확히일치/유사일치 검색여부입니다.
'_____________returnType : 반환형식을 결정합니다. (Public Enum)
'_____________Dimension : 값을 검색할 배열의 차원입니다.
'_____________vbCompare : 대소문자 구분 여부입니다. (vbTextCompare : 대소문자구분X, vbBinaryCompare : 대소문자구분)
'▶ 사용된 기타 사용자지정함수
'_____________ArrayDimension 함수
'▶ 그외 참고사항
'_____________xlArrayReturnType PublicEnum이 사용되었습니다.
'###############################################################
Function IsInArray(FindValue As Variant, _
vaArray As Variant, _
Optional ExactMatch As Boolean = True, _
Optional returnType As xlArrayReturnType = rtnValue, _
Optional Dimension As Integer = 0, _
Optional vbCompare As VbCompareMethod = vbTextCompare) As Variant
Dim i As Long: Dim j As Long
Dim dicArr As Object: Dim dicKey As Variant: Dim dicKeys As Variant
Dim rtnArr As Variant
Dim ArrDim As Integer
ArrDim = ArrayDimension(vaArray)
Set dicArr = CreateObject("Scripting.Dictionary")
'// IsInArray 초기값을 설정합니다.
IsInArray = -1
'// 정확히일치일 경우
If ExactMatch = True Then
'// 값이 있을시 ReturnType에 따라 반환합니다. (정확히 일치이므로 결과는 무조건 1개만 반환)
If ArrDim = 1 Then
'// 배열이 1차원일 경우
For i = LBound(vaArray) To UBound(vaArray)
If StrComp(FindValue, vaArray(i), vbCompare) = 0 Then
If returnType = rtnValue Or returnType = rtnArrayValue Then IsInArray = vaArray(i): Exit For
If returnType = rtnSequence Then IsInArray = i: Exit For
End If
Next i
Else
'// 배열이 2차원일 경우
For i = LBound(vaArray) To UBound(vaArray)
If StrComp(FindValue, vaArray(i, Dimension), vbCompare) = 0 Then
If returnType = rtnValue Then IsInArray = vaArray(i, Dimension): Exit For
If returnType = rtnSequence Then IsInArray = i: Exit For
If returnType = rtnArrayValue Then dicArr.Add i, i: Exit For
Exit For
End If
Next i
'// Dictionary에 값이 하나라도 존재시
If dicArr.Count > 0 Then
'배열 Redim
ReDim rtnArr(0, 0 To ArrDim - 1)
'// Dictionary 에서 받아온 각 값을 배열로 옮깁니다
For Each dicKey In dicArr.keys
For j = LBound(vaArray, 2) To UBound(vaArray, 2)
rtnArr(0, j) = vaArray(dicKey, j)
Next
Next
'// 배열로 결과를 출력합니다
IsInArray = rtnArr
End If
End If
'// 유사일치일 경우
Else
If ArrDim = 1 Then
'// 배열이 1차원일 경우
For i = LBound(vaArray) To UBound(vaArray)
'// 값이 있을시 ReturnType에 따라 결과를 반환합니다
If InStr(1, vaArray(i), FindValue) > 0 Then
If returnType = rtnValue Then IsInArray = vaArray(i): Exit For
If returnType = rtnSequence Then IsInArray = i: Exit For
If returnType = rtnArrayValue Then dicArr.Add i, i
End If
Next i
'// 유사일치 값이 하나라도 존재시
If dicArr.Count > 0 Then
'배열 Redim
ReDim rtnArr(0 To dicArr.Count - 1)
i = 0
'// Dictionary 에서 받아온 각 값을 배열로 옮깁니다
For Each dicKey In dicArr.keys
rtnArr(i) = vaArray(dicKey)
i = i + 1
Next
'// 배열로 결과를 출력합니다
IsInArray = rtnArr
End If
Else
'// 배열이 2차원일 경우
For i = LBound(vaArray) To UBound(vaArray)
'// 값이 있을시 ReturnType에 따라 결과를 반환합니다
If InStr(1, vaArray(i, Dimension), FindValue) > 0 Then
If returnType = rtnValue Then IsInArray = vaArray(i, Dimension): Exit For
If returnType = rtnSequence Then IsInArray = i: Exit For
If returnType = rtnArrayValue Then dicArr.Add i, i
End If
Next i
'// 유사일치 값이 하나라도 존재시
If dicArr.Count > 0 Then
'배열 Redim
ReDim rtnArr(0 To dicArr.Count - 1, 0 To ArrDim - 1)
i = 0
'// Dictionary 에서 받아온 각 값을 배열로 옮깁니다
For Each dicKey In dicArr.keys
For j = LBound(vaArray, 2) To UBound(vaArray, 2)
rtnArr(i, j) = vaArray(dicKey, j)
Next
i = i + 1
Next
'// 배열로 결과를 출력합니다
IsInArray = rtnArr
End If
End If
End If
End Function
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ ArrayDimension 함수
'▶ 배열의 차원수를 반환합니다.
'▶ 인수 설명
'_____________vaArray : 차원을 검토할 배열을 입력합니다.
'###############################################################
Function ArrayDimension(vaArray As Variant) As Integer
Dim i As Integer: Dim x As Integer
On Error Resume Next
Do
i = i + 1
x = UBound(vaArray, i)
Loop Until Err.Number <> 0
Err.Clear
ArrayDimension = i - 1
End Function
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ ListFiles 함수
'▶ 선택한 폴더의 파일목록을 배열로 반환합니다.
'▶ 인수 설명
'_____________sPath : 파일목록을 출력할 폴더입니다.
'_____________withPath : 폴더경로를 같이 출력할 여부를 결정합니다.
'###############################################################
Function ListFiles(sPath As String, Optional withPath As Boolean = False)
'// 각 변수를 생성합니다.
Dim arr As Variant
Dim i As Integer
Dim oFSO As Object: Dim oFolder As Object: Dim oFiles As Object: Dim oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sPath)
Set oFiles = oFolder.Files
'// 변수를 설정합니다.
i = 1
If oFiles.Count = 0 Then Exit Function
If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
'// 폴더에 파일이 한개라도 존재시 배열 생성합니다.
ReDim arr(1 To oFiles.Count)
'// 각 파일을 돌아가며 Arr 배열로 반환합니다.
For Each oFile In oFiles
If withPath = False Then arr(i) = oFile.Name Else: arr(i) = sPath & oFile.Name
i = i + 1
Next
'// 배열을 결과값으로 출력합니다.
ListFiles = arr
End Function
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ cvRng 함수
'▶ 사용자지정함수에서 범위로 인수를 받을 시 사용합니다. 만약 인수가 범위로 입력되었을 경우, 범위에 입력된 값을 반환합니다.
'▶ 인수 설명
'_____________TargetRng : 값을 반환할 범위 또는 그외 값입니다.
'###############################################################
Function cvRng(TargetRng)
If TypeName(TargetRng) = "Range" Then
cvRng = TargetRng.Value
Else
cvRng = TargetRng
End If
End Function
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (291)
오빠두엑셀
|
2022.02.03
|
추천 554
|
조회 849682
|
오빠두엑셀 | 2022.02.03 | 554 | 849682 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 304
|
조회 31680
|
오빠두엑셀 | 2021.10.28 | 304 | 31680 |
74673 | 함수/공식 |
New 제조일자별 가장빠른 재고와 다음으로 빠른 위치 도출방법 문의
(2)
Joshu
|
13:57
|
추천 0
|
조회 37
|
Joshu | 13:57 | - | 37 |
74671 | VBA |
New 유튜브에서 소개하신 엑셀 문자발송 자동화 예제파일에 대한 문의 드립니다.
(1)
jckim****
|
07:15
|
추천 0
|
조회 45
|
jckim**** | 07:15 | - | 45 |
74669 | 피벗테이블 |
New 피벗테이블 날짜 그룹화에 원치 않는 범위 생성
단팥빵
|
01:08
|
추천 0
|
조회 43
|
단팥빵 | 01:08 | - | 43 |
74664 | 기능/도구 |
New 엑셀 빠른실행도구에 원하는 폰트 등록(바로가기) 가능한가요 ?
(1)
불량감자
|
2024.11.01
|
추천 0
|
조회 55
|
불량감자 | 2024.11.01 | - | 55 |
74662 | VBA |
New LISTBOX 목록 상자를 만들려고 하는데 ...
(1)
땡이
|
2024.11.01
|
추천 0
|
조회 64
|
땡이 | 2024.11.01 | - | 64 |
74660 | 함수/공식 |
New 엑셀처리 속도 관련 질문
(2)
캐쿨이
|
2024.11.01
|
추천 0
|
조회 79
|
캐쿨이 | 2024.11.01 | - | 79 |
74655 |
New 데이터 유효성검사 그룹화 하여 여러시트 값 넣기 해결방법 알려주세요
(1)
훅가
|
2024.11.01
|
추천 0
|
조회 68
|
훅가 | 2024.11.01 | - | 68 | |
74654 | 함수/공식 |
New 필요 없는 열 숨기기 조건부서식
(2)
JL2
|
2024.11.01
|
추천 0
|
조회 62
|
JL2 | 2024.11.01 | - | 62 |
74653 | VBA |
New Form의 CommandButton에서 Module에 있는 매크로 사용방법 문의
(3)
답변완료
땡이
|
2024.11.01
|
추천 0
|
조회 54
|
땡이 | 2024.11.01 | - | 54 |
74651 | 문서서식 |
New 엑셀 번역 기능 질문 입니다.
(1)
Foxtail011
|
2024.11.01
|
추천 0
|
조회 65
|
Foxtail011 | 2024.11.01 | - | 65 |
74649 | 함수/공식 |
New 이중 데이터 유효성 질문드립니다.
(3)
반흔
|
2024.11.01
|
추천 0
|
조회 84
|
반흔 | 2024.11.01 | - | 84 |
74648 | 파워쿼리/피벗 |
New 파워쿼리 구분기호 사라짐
(1)
Byun_inn
|
2024.11.01
|
추천 0
|
조회 63
|
Byun_inn | 2024.11.01 | - | 63 |
74643 | 파워쿼리/피벗 |
New 파워쿼리 구분 키워드 설정 관련
(11)
답변완료
Byun_inn
|
2024.11.01
|
추천 0
|
조회 80
|
Byun_inn | 2024.11.01 | - | 80 |
74641 | 함수/공식 |
New 선택된 셀에 색상넣기 (셀에 만 적용) 수식 변경 부탁드립니다.
(8)
갓바위 龍
|
2024.11.01
|
추천 0
|
조회 78
|
갓바위 龍 | 2024.11.01 | - | 78 |
74639 | 함수/공식 |
New 데이터유효성 검사를 통해 40배수의 수만 입력
(10)
쿠노이
|
2024.11.01
|
추천 0
|
조회 91
|
쿠노이 | 2024.11.01 | - | 91 |
74638 | 피벗테이블 |
New 피벗테이블 날짜 그룹화 원치 않는 범위가 뜹니다.
(1)
답변완료
단팥빵
|
2024.10.31
|
추천 0
|
조회 76
|
단팥빵 | 2024.10.31 | - | 76 |
74633 | 문서서식 |
New 안녕하세요 게임 시스템 테이블 작성 배우고 있는데 기초적인 부분을 잘 모르겠어서 질문 드립니다!
(1)
답변완료
코니
|
2024.10.31
|
추천 0
|
조회 93
|
코니 | 2024.10.31 | - | 93 |
74632 | 기능/도구 |
New 챗gpt 연동해서 이미지로 된 표의 데이터를 가져오려고 합니다.
김수현
|
2024.10.31
|
추천 0
|
조회 97
|
김수현 | 2024.10.31 | - | 97 |
74628 | 구글시트 |
New IMPORTRANGE 함수에서 칸을 늘리면 사라지는데 고정하는 방법은 없을까요?
(3)
야망이
|
2024.10.31
|
추천 0
|
조회 97
|
야망이 | 2024.10.31 | - | 97 |
74627 | 문서서식 |
New 조건부 서식 문의
(9)
배고픈짐승
|
2024.10.31
|
추천 0
|
조회 118
|
배고픈짐승 | 2024.10.31 | - | 118 |
74626 | 파워쿼리/피벗 |
New [파워쿼리] 여러 파일 한번에 불러올 때 데이터 유실
(3)
naa****
|
2024.10.31
|
추천 0
|
조회 81
|
naa**** | 2024.10.31 | - | 81 |
74625 | VBA |
New 시트이동시 유저폼 실행방법 문의
(3)
답변완료
땡이
|
2024.10.31
|
추천 0
|
조회 86
|
땡이 | 2024.10.31 | - | 86 |
74621 | 기능/도구 |
New 4개의 열 에서 같은 이름 가로로 정렬
(4)
Bukonge
|
2024.10.31
|
추천 0
|
조회 88
|
Bukonge | 2024.10.31 | - | 88 |
74618 | VBA |
New 유저폼에 바코드스캔시 입력속도 개선방법?
(6)
답변완료
땡이
|
2024.10.31
|
추천 0
|
조회 79
|
땡이 | 2024.10.31 | - | 79 |
74616 | 함수/공식 |
New Rawdata
(4)
HIHUGO
|
2024.10.31
|
추천 0
|
조회 91
|
HIHUGO | 2024.10.31 | - | 91 |
74604 | 문서서식 |
New 간트차트 조건부서식 이용 문의
(3)
배고픈짐승
|
2024.10.30
|
추천 0
|
조회 98
|
배고픈짐승 | 2024.10.30 | - | 98 |
74599 | 함수/공식 |
New 이런 경우에는 무슨 함수를 써야할까요..?
(3)
iwnqn
|
2024.10.30
|
추천 0
|
조회 133
|
iwnqn | 2024.10.30 | - | 133 |
74598 | 문서서식 |
New 엑셀 유효성 검사 뛰어 쓰기 문제
(2)
답변완료
퉁퉁이
|
2024.10.30
|
추천 0
|
조회 93
|
퉁퉁이 | 2024.10.30 | - | 93 |
74592 | 함수/공식 |
New 여러 값들 중에서 원하는 값을 찾고 싶어요 도와주세요!
(9)
답변완료
저도해볼게요
|
2024.10.30
|
추천 0
|
조회 117
|
저도해볼게요 | 2024.10.30 | - | 117 |
74589 | 구글시트 |
New 한셀에 줄바꿈으로 있는 여러데이터를 한셀에 한데이터 들어가게끔 일괄로 하고 싶습니다
(4)
답변완료
스톤스톤
|
2024.10.30
|
추천 0
|
조회 76
|
스톤스톤 | 2024.10.30 | - | 76 |
@u*** 님 안녕하세요?
적어주신 내용만으로는 정확한 답변을 드리기 어렵습니다.
어떤 오류가 출력되는지 스크린샷 또는 오류문구를 같이 적어주시겠어요?
감사합니다.