메뉴
실무 위키VBA 코드Extract_Column

Extract_Column

Function

2차원 배열에서 지정한 열의 데이터만 추출하는 VBA 사용자 지정 함수입니다.

Extract_Column 코드 미리보기
구문 = Extract_Column ( 배열, 열번호 )
인수구분 형식 설명
배열 필수 Variant
특정 열을 추출할 배열입니다.
열번호 필수 Long
배열에서 추출할 열의 열 번호입니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · Extract_Column
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ Extract_Column 함수
'▶ 배열에서 지정한 열을 추출합니다.
'▶ 인수 설명
'_____________DB : 특정 열을 추출할 배열입니다.
'_____________Col : 배열에서 추출할 열의 열번호입니다.
'▶ 사용 예제
'Arr = Extract_Column(Arr, 3) '<- 3번째 열을 추출합니다.
'##############################################################
Function Extract_Column(DB As Variant, Col As Long) As Variant
Dim i As Long
Dim vArr As Variant
ReDim vArr(LBound(DB) To UBound(DB), 1 To 1)
For i = LBound(DB) To UBound(DB)
vArr(i, 1) = DB(i, Col)
Next
Extract_Column = vArr
End Function

활용 예제

배열에서 첫번째 열 추출하기
Array = Extract_Column(Array, 1)
배열에서 세번째 열 추출하기
Array = Extract_Column(Array, 3)

안내사항

2차원 배열에서만 사용할 수 있습니다.
1차원 배열 또는 3차원 이상 배열을 입력하면 런타임 오류 9 '아래첨자 사용이 잘못 되었습니다' 를 반환합니다.
댓글 10
5 (7개 평가)
의지
의지 2021.01.04 09:37
잘 봤습니다 감사합니다!
성실하게
성실하게 2021.01.07 23:35
잘봤습니다
낙타
낙타 2021.01.12 00:11
정말 유익하네요.
이런게 국익을 만들어 내는거라 생각합니더
얌얌히히
얌얌히히 2022.03.18 18:11
예제파일 다운로드가 보이지 않습니다 ㅠ...
오빠두엑셀
오빠두엑셀 작성자 2022.03.21 21:02
안녕하세요
파일이 누락되어 있었습니다. 이용에 불편을 드려 죄송합니다.
방금 파일을 새로 올려드렸으니 한번 확인해보시겠어요?
감사합니다.
Free soul
Free soul 2022.06.16 13:40
와우... 이거 사용자정의함수에 등록해서 써야겠어요. 감사합니다.
Free soul
Free soul 2022.06.16 18:07
아 안되네요. 배열은 셀 범위에 나타낼 수 없는지요?
ㅎㅎㅎㅇㄴㅁ
ㅎㅎㅎㅇㄴㅁ 2024.01.17 14:57
특정열을 1개가 아닌, 여러개가 추출하고 싶을때는 어떤식으로 응용하면 될까요?
오빠두엑셀
오빠두엑셀 작성자 2024.01.19 18:18
안녕하세요.
ChatGPT를 통해 생성한 코드입니다. 아래 코드를 한번 사용해보시겠어요?
DB = Extract_Columns(DB,"1,2,3") 과 같이 사용하면 됩니다.

Function Extract_Columns(DB As Range, ColString As String) As Variant
  Dim i As Long, j As Long, k As Long
  Dim colArray() As String
  Dim vArr As Variant
   
  ' Split the column string into an array
  colArray = Split(ColString, ",")
   
  ' Redimension the output array
  ReDim vArr(1 To DB.Rows.Count, 1 To UBound(colArray) + 1)
   
  ' Loop through each row
  For i = 1 To DB.Rows.Count
    ' Loop through each specified column
    For j = LBound(colArray) To UBound(colArray)
      ' Assign the value to the output array
      k = CInt(Trim(colArray(j))) ' Convert string to integer
      vArr(i, j + 1) = DB.Cells(i, k).Value
    Next j
  Next i

  ' Return the array
  Extract_Columns = vArr
End Function
강민준🤗
강민준🤗 2024.08.11 12:09
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료