Excel 공통 해결 방법 (1)

1839 단어 작업ExcelVBA
일상적인 업무에서 흔히 Excel로 이런저런 데이터를 처리해야 하는데, 그 중에서 Excel의 공식과 Macro의 사용은 많은 중복 작업을 줄일 수 있다.일부 조작은 VBA에서 실현하기 쉽지만 공식만 사용할 때 많은 조작이 실현하기 어렵다.본고는 내가 자주 사용하는 공식들을 기록한다.
 
1. 현재sheet명을 절취
현재 sheet에서 sheet 이름을 가져오는 작업:
    =MID(CELL("FILENAME",A1),FIND("]",CELL("FILENAME",A1))+1,LEN(CELL("FILENAME",A1)))
 
설명:
     1. CELL("FILENAME",A1)
D:\test\[test.xls]Sheet1과 유사한 문자열을 얻을 수 있습니다.여기서 Sheet 이름은 현재 Sheet의 이름입니다.
     2. ID를 사용하여 목적을 달성하기 위해 문자열 Sheet1을 해석하고 버스트합니다.
 
2. 현재 Workbook의 sheet 목록을 얻을 수 있습니다.
이 작업은 Workbook의Name 정의를 사용해야 합니다.
작동 방식:
    1. Name 정의 Sht 추가, 내용은
        =REPLACE(GET.WORKBOOK(1), 1, FIND("]", GET.WORKBOOK(1)), ) & T(NOW())
    2. 공식에서 사용할 때 INDEX(Shts, 숫자)로 해당하는 Sheet 이름을 지정합니다.
예:
        =IF(ROW()>COUNTA(shts),"",HYPERLINK("#"&INDEX(shts,ROW())&"!A1",INDEX(shts,ROW())))
위의 공식은 행 번호(ROW()를 인덱스로 하여 Sheet 이름을 한 줄씩 표시하고 해당 Sheet의 A1 셀에 표시 셀을 연결합니다.
 
설명:
     1. Name 정의에서 & T (NOW () 를 사용하는 의도는 링크 정보를 수시로 업데이트하는 것입니다. 그렇지 않으면 수정된 후에 사용할 목록이 수정 전의 상황일 수 있습니다.
     2. GET 방법은 Name 정의에서 사용해야 하며 공식에 직접 써야 하며 인식되지 않습니다.GET 방법이 매크로 함수이기 때문에 원인을 찾아봤습니다.GET에 관해서는 GET도 있다.문서 등.
 
Name 의 VBA 추가
Sub addName()
    Dim strName     As String
    strName = "Shts"
    Names.Add Name:=strName, RefersToR1C1:= _
        "=REPLACE(GET.WORKBOOK(1),1,FIND(""]"",GET.WORKBOOK(1)),)&T(NOW())"
End Sub

 
3. 문자열에 대응하는 칸의 값을 얻는다
    =INDIRECT(ADDRESS(3, 2, 1, FALSE, INDEX(Shts,(ROW()+2))), FALSE )
 
설명:
     1. ADDRESS 함수, 유사 Sheet1 반환! $E$4의 문자열입니다.
     2. INDIRECT 함수, 지정된 문자열에 해당하는 셀의 내용을 반환합니다.

좋은 웹페이지 즐겨찾기