양식을 자동으로 작성하는 프로그램. Microsoft Excel 자동 완성 응용 프로그램의 자동 완성 셀

200 명의 아이들이 lyceum에서 공부하기를 원했습니다. 그러나 학교는 단지 75 명의 학생들을 모집했습니다. 지정된 사이트에 카운트 다운이있었습니다. 지정된 시간에 양식이 열리고 부모가 양식을 작성하기 시작했습니다. 양식은 부분으로 표시되었습니다. 일부 정보는 다른 페이지에서로드되었습니다.

1.5 분 안에 머 무르지 않은 사람들은 선외에있었습니다. 자세한 내용을 알아보십시오.

염두에 두어야 할 첫 번째 사항 : [도구는 누구나 사용할 수 있도록 프로그램되었으므로 프로그래밍 할 필요가 없습니다].

Mozilla Firefox JavaScript 편집기

Shift F4를 동시에 누르면 "실행"버튼을 클릭하여 JavaScript를 작성하고 실행할 수있는 창이 나타납니다. 예를 들어, 화면에 메시지를 표시하는 방법입니다

경고 ( "내 메시지");

양식 필드를 자동으로 채우는 스크립트

나는 두 번째 기회가 없었고 개발자가 무엇을 바꿀 수 있는지, 어떤 데이터가 전송 될지 몰랐기 때문에 재보험을 받았습니다. 에디터에서 그런 JS를 시작했습니다.

// 지원자 데이터 requestAnimationFrame (step00); var razstart \u003d null; 함수 step00 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "입력, 입력 : not ()"))) 필터 (기능 (a) (a.offsetHeight\u003e "5"반환)) ; // 텍스트 필드가 5px 이상인 경우 if (! razstart) razstart \u003d 타임 스탬프; if (raz.length // 5 개가 넘는 필드가있을 때까지 함수를 반복하십시오 (setTimeout 및 setInterval의 지연보다 더 안정적인) requestAnimationFrame (step00);) else ( // 5 개가 넘는 필드가 있으면 채 웁니다 raz.value \u003d "(! LANG : 이바노 바"; raz.value = "나탈리아"; raz.value = "이바노브 나"; raz.value = "0000"; raz.value = "000000"; raz.value = "러시아 FMS학과 ..."; raz.value = "01.01.2009"; for (var i = 0; i // эмулировать (имитировать) действия посетителя raz[i].dispatchEvent(new Event("change")); raz[i].dispatchEvent(new Event("change")); raz[i].dispatchEvent(new Event("keydown")); raz[i].dispatchEvent(new Event("keyup")); } requestAnimationFrame(step01); !} // 다음 함수를 실행 } } // 아이에 관한 데이터 var razstart \u003d null; 함수 step01 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "입력, 입력 : not ()"))). 필터 (기능 (a) (반환 (a.offsetHeight\u003e "5") && (a.value! \u003d "Natalya") && (a.value! \u003d "Ivanovna") && (a.value! \u003d "0000") && (a.value! \u003d "000000") && (a.value! \u003d "러시아의 FMS 부서 ...") && (a.value! \u003d "01.01.2009"))); // 텍스트 필드가 5px 이상이고 이전에 채운 텍스트가 포함되어 있지 않은 경우 (성 제외) if (! razstart) razstart \u003d 타임 스탬프; if (raz.length // 등록 주소 var razstart \u003d null; 함수 step02 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "입력, 입력 : not ()"))) 필터 (함수 (a) (반환 (a.offsetHeight\u003e "5") && (a.value! \u003d "Ivanova") && (a.value! \u003d "Natalya") && (a.value! \u003d "Ivanovna") && (a .value! \u003d "0000") && (a.value! \u003d "000000") && (a.value! \u003d "RUSSIA ON FMS학과 ...") && (a.value! \u003d "01.01.2009") && (a.value! \u003d "Ivanov") && (a.value! \u003d "Ivan") && (a.value! \u003d "Ivanovich") && (a.value! \u003d "01.01.2009") && (a.value ! \u003d "Samara city") && (a.value! \u003d "III-EP") && (a.value! \u003d "000000"))); if (! razstart) razstart \u003d 타임 스탬프; if (raz.length "5 ") && (a.innerHTML.indexOf ("registration ")! \u003d -1))). dispatchEvent (새 이벤트 ("click ")); // 5px보다 큰 버튼을 클릭하고 "register"라는 텍스트가 포함 된 에뮬레이션 requestAnimationFrame (step03); requestAnimationFrame (step04); requestAnimationFrame (step05); ))) // 연락처 var razstart \u003d null; 함수 step03 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "버튼"))) 필터 (기능 (a) (반환 (a.offsetHeight\u003e "5") && (a.innerHTML) indexOf ( "mail")! \u003d -1))); if (! razstart) razstart \u003d 타임 스탬프; if (raz.length \u003d\u003d 0) (requestAnimationFrame (step03);) else (raz.dispatchEvent (새 이벤트 ( "click ")); var razI \u003d Array.prototype.slice.call (document.querySelectorAll ("input ")). 필터 (function (a) (return (a.offsetHeight\u003e"5 ") && (a.value \u003d\u003d" "))); razI.value \u003d"(! LANG : [이메일 보호]"; razI.dispatchEvent (새 이벤트 ("change ")); razI.dispatchEvent (새 이벤트 ("change "));)) // "필수 속성에 데이터로드"버튼 var razstart \u003d null; 함수 step04 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "버튼"))) 필터 (함수 (a) (반환 (a.offsetHeight\u003e "5") && (a.innerHTML) indexOf ( "agruz")! \u003d -1))); if (! razstart) razstart \u003d 타임 스탬프; if (raz.length \u003d\u003d 0) (requestAnimationFrame (step04);) else (raz.dispatchEvent (새 이벤트 ( "click "));)) // "개인 정보 처리에 동의합니다"확인란 var razstart \u003d null; 함수 step05 (타임 스탬프) (var raz \u003d Array.prototype.slice.call (document.querySelectorAll ( "input")). 필터 (function (a) (a.offsetHeight\u003e "5"반환)); if (! razstart) razstart \u003d 타임 스탬프; if (raz.length \u003d\u003d 0) (requestAnimationFrame (step05);) else (raz.checked \u003d true; //하다 raz.dispatchEvent (새 이벤트 ( "클릭")); // 클릭을 에뮬레이트 raz.dispatchEvent (새 이벤트 ( "클릭")); )))

검색 모듈이 설치되지 않았습니다.

나데 즈다 발로 sya

제품 등록, 자료 발송 또는 온라인 쇼핑과 같이 인터넷에서 많은 시간을 소비해야하는 사용자는 다양한 웹 양식을 작성하는 데 많은 시간을 소비합니다. 로그인, 비밀번호, 이름, 주소, 우편 번호 등 ...

거의 동일한 데이터를 입력 한 후 등록이 완료 될 때까지 기다립니다. 이 일상적인 작업을 단순화하기 위해 양식을 자동으로 작성하도록 설계된 특수 프로그램을 사용할 수 있습니다.

웹에는이 클래스의 프로그램이 많이 있지만 그중 대부분은 전문화가 너무 좁기 때문에 보편적 인 유니버설이 거의 없습니다.

인터넷을 서핑하는 동안 성, 이름, 주소, 생년월일 등의 동일한 데이터를 표시하면서 웹 페이지에서 다양한 양식을 작성해야하는 경우가 종종 있습니다. 특수 프로그램을 사용하면이 데이터를 특수 데이터베이스에 저장하고 필요한 경우 웹 페이지의 양식으로 대체 할 수 있습니다.

IE 스크립터

개발자 사이트 :www.iescripter.com
분포 크기 :1.2 Mb
상태:셰어웨어

설치 결과 IE Scripter는 Internet Explorer 브라우저의 도구 모음에 해당 단추를 추가합니다. 웹 페이지에서 양식을 충족하면 데이터를 입력 한 다음이 버튼을 클릭해야합니다. 프로그램 작동을 제어 할 수있는 추가 패널이 브라우저 창에 표시됩니다. 양식에 입력 한 데이터를 저장할 수 있습니다. 동시에이 프로그램을 사용하면 저장할 값과 생략 할 값을 선택할 수 있습니다.

다른 사이트에서 양식을 충족하면 저장된 데이터를 사용하려면로드 버튼을 클릭하면 프로그램이 필요한 필드의 모든 값을 자동으로 대체합니다. 사실, 특히 드롭 다운 필드에서 프로그램이 항상 올바르게 작동하지는 않습니다. 또한 Internet Explorer에서 열린 단일 페이지에 대해 다른 데이터를 사용할 수 없습니다. 예를 들어 여러 사서함의 데이터를 적용 할 수 없습니다. 프로그램에서 여러 값 집합을 기억할 수 없습니다.

이 채우기 방법 외에도 웹 페이지에서 찾은 양식을 작성할 때 프로그램이 사용할 IE Scripter 데이터베이스에 표준 값 세트를 저장할 수 있습니다. 이 파라미터는 프로그램 설정 창에서 설정해야합니다. 표준 매개 변수 세트가 충분하지 않으며 양식을 작성하기에 항상 충분하지는 않습니다. 이러한 옵션은 Internet Explorer 설정에 저장된 세트에서 다운로드 할 수 있습니다. 또한 프로그램은 웹 양식의 필드 유형을 결정하는 키워드 목록을 편집 할 수 없습니다.

이 프로그램에는 유연한 설정이 있습니다. 특수 파일로 설정을 저장할 수 있습니다. 프로그램의 추가 기능 중에는 암호 생성 및 쿠키보기 도구가 있습니다.

iNetFormFiller

개발자 사이트 : www.inetformfiller.com
분포 크기 : 2.8 메가 바이트
상태: 셰어웨어

iNetFormFiller를 설치 및 등록하면 아이콘이 시스템 트레이에 배치됩니다.

프로그램의 메인 창에는 사용자에 대한 매우 자세한 정보가있는 프로파일이 있습니다. 프로그램 개발자는 웹 양식을 작성할 때 매우 드물지만 입력 필드에 가능한 모든 옵션을 제공 한 것으로 보입니다. 양식 데이터는 프로필에 저장되며, 필드 그룹을 만들거나 포함 할 필드를 임의로 선택하여 구성 할 수 있습니다. 또한 설문지는 절대적으로 표준의 필드를 포함 할 수 있습니다. 그러나 일부 필드는 서로 연결할 수 있습니다. 이 경우 특정 정보를 한 필드에 입력하면 해당 정보와 관련된 나머지 정보가 지정된 값으로 자동으로 채워질 수 있습니다. 프로파일을 작성할 때 프로그램은 불필요한 필드 제거를 지원합니다. 기성품 프로파일은 템플릿으로 저장하여 나중에 다른 프로파일을 만들 때 사용할 수 있습니다.

프로그램을 설치하면 Internet Explorer에 추가 iNEtFormFiller 도구 모음이 포함됩니다.

이 프로그램은 웹 페이지의 필드에 저장된 데이터를 대체하거나 웹 페이지의 양식에 입력 된 데이터를 저장하여 두 가지 방법으로 양식을 채우는 방법도 알고 있습니다. 양식을 작성하려면 채우기 버튼을 클릭하기 만하면 모든 데이터가 양식에 저장됩니다.

프로그램으로 채워진 모든 페이지는 특수 섹션-양식 카드 목록에 저장됩니다. 목록에서 양식 카드를 선택하면 프로그램 창 옆 에이 페이지의 필드가 표시되며 필요한 값을 입력하여 오프라인으로 편집 할 수 있습니다. 실제로, 양식 맵은 양식이있는 동일한 웹 페이지이지만 보존 된 구조 만 있습니다.

배치 입력 모드에서 프로그램을 사용하면 일반 데이터로 온라인 양식을 채울 수 있으며 프로파일에서 대체 할 데이터와 수동으로 입력 할 데이터를 지정할 수 있습니다.

iNetFormFiller에서 제공되는 또 다른 흥미로운 도구를 사용하면 브라우저에서 수행 된 모든 사용자 동작을 기록 할 수 있습니다. 이 작동 모드에서 프로그램은 완료된 필드뿐만 아니라 링크 또는 버튼을 클릭 할 때마다 기억합니다. 거의 모든 작업 집합을 기억 한 다음 필요한 경우 일부 매개 변수를 변경하여 적절한 횟수로 재생하면됩니다.

프로그램의 유연한 구성 옵션에 유의하십시오. 각 페이지마다 프로그램에서 저장 및 채우기에 대한 다양한 옵션을 포함하여 고유 한 설정을 지정할 수 있습니다. 설정 및 저장된 프로파일의 내보내기 및 가져 오기 기능으로 인해 프로그램 데이터베이스를 다른 컴퓨터로 전송할 수 있습니다.

로보 폼

개발자 사이트 : www.roboform.com
분포 크기 : 1.8 메가 바이트
상태: 셰어웨어

RoboForm의 기능은이 프로그램을 아날로그와 구별하여 해당 범주에서 최고 중 하나입니다.

이 프로그램은 또한 브라우저 툴바에 버튼을 추가합니다. RoboForm은 웹 페이지에 입력 한 데이터를 저장할 수 있습니다. 동시에, 프로그램은이 데이터를 패스 카드라는 특수 항목에 저장합니다. 이 패스 카드는 양식을 작성하는 데 사용할 수 있습니다. 또한 웹 페이지에서 양식에 일부 데이터를 입력하면 프로그램에서 작업을 인식하고이 데이터를 저장하도록 제안합니다.

개인 편집기를 사용하여 양식을 작성할 때 나중에 사용하기 위해 데이터를 수동으로 저장할 수 있습니다. 프로그램 데이터베이스의 내용, 패스 카드 및 프로그램 데이터베이스에 새 항목을 추가하는 기능은 암호로 보호 할 수 있습니다.

여러 사용자가 프로그램을 사용하는 경우 각 사용자에 대해 양식을 작성하기위한 고유 한 매개 변수를 설정할 수 있습니다.

광범위한 프로그램 설정에 유의해야합니다. 예를 들어 RoboForm을 사용하면 Internet Explorer의 상황에 맞는 메뉴 구성을 완전히 사용자 지정할 수 있으며 프로그램에서 양식을 작성하기 위해 사용하는 키 조합을 구성 할 수도 있습니다.

Webm8

개발자 사이트 : www.m8software.com
분포 크기 : 1.59 Mb
상태: 셰어웨어

이 프로그램을 사용하면 웹 양식을 작성하기 위해 많은 다른 데이터로 작업 할 수 있습니다. 프로그램 작업의 주요 단점은 각 양식마다 별도의 필드 값 목록을 작성해야한다는 것입니다. 그리고 양식을 작성하려면 프로그램에서 미리 준비된 필수 필드 값 목록을 선택해야합니다. 따라서 WebM8을 사용하면 다른 웹 페이지에있는 다양한 웹 양식을 작성하기가 매우 어렵습니다. 그러나 동일한 양식을 작성 해야하는 경우 프로그램이 완벽한 솔루션이 될 것입니다.


테이블에 동일하거나 동일한 유형의 데이터를 오랫동안 단조롭게 입력하려는 사람은 거의 없습니다. 이것은 꽤 지루한 작업이며 많은 시간이 걸립니다. Excel에는 이러한 데이터 입력을 자동화하는 기능이 있습니다. 이를 위해 셀의 자동 완성 기능이 제공됩니다. 그것이 어떻게 작동하는지 봅시다.

Microsoft Excel의 자동 완성은 특수 채우기 마커를 사용하여 수행됩니다. 이 도구를 호출하려면 셀의 오른쪽 아래 모서리를 가리켜 야합니다. 작은 검은 십자가가 나타납니다. 채우기 마커입니다. 마우스 왼쪽 버튼을 누른 상태에서 셀을 채울 시트쪽으로 드래그하면됩니다.

셀이 채워지는 방법은 원래 셀에있는 데이터 유형에 따라 다릅니다. 예를 들어 단어 형태의 일반 텍스트가있는 경우 채우기 마커를 사용하여 드래그하면 시트의 다른 셀로 복사됩니다.

숫자로 셀 자동 채우기

대부분 자동 완성은 순서대로 뒤에 오는 큰 숫자 배열을 입력하는 데 사용됩니다. 예를 들어 특정 셀에는 숫자 1이 있으며 1에서 100까지 셀의 숫자를 지정해야합니다.


보시다시피 그 후 원하는 전체 범위가 순서대로 숫자로 채워졌습니다.

그러나 더 쉽게 만들 수 있습니다. 자동 완성 옵션을 호출 할 필요는 없습니다. 이렇게하려면 채우기 마커를 아래로 끌고 마우스 왼쪽 버튼을 누른 상태에서 다른 버튼을 누르고 있어야합니다. Ctrl 키보드에서. 그 후, 셀을 숫자 순서대로 채우면 즉시 발생합니다.

자동 완성을 여러 가지 방법으로 수행 할 수있는 방법도 있습니다.


채우기 도구

Excel에는 별도의 도구가 있습니다. "채우기". 탭의 리본에 있습니다. "집" 툴박스에서 "편집".


이 도구를 사용하여 진행 상태로 셀을 채울 수도 있습니다.


자동 완성 수식

Excel의 주요 도구 중 하나는 수식입니다. 표에 동일한 수의 동일한 수식이있는 경우 자동 완성 기능을 사용할 수도 있습니다. 본질은 변하지 않습니다. 채우기 마커를 사용하여 같은 방식으로 수식을 다른 셀에 복사해야합니다. 또한 수식에 다른 셀에 대한 링크가 포함되어 있으면 기본적으로 이러한 방식으로 복사 할 때 상대 좌표의 원리에 따라 좌표가 변경됩니다. 따라서 이러한 링크를 상대라고합니다.

자동 완성 중에 주소를 고정하려면 행과 열의 좌표 앞에 원래 셀에 달러 기호를 넣어야합니다. 이러한 링크를 절대라고합니다. 그런 다음 채우기 마커를 사용하여 일반적인 자동 채우기 절차를 수행합니다. 이러한 방식으로 채워진 모든 셀에서 수식은 절대 변경되지 않습니다.

다른 값으로 자동 완성

또한 Excel은 다른 값을 순서대로 자동 완성합니다. 예를 들어 날짜를 입력 한 다음 채우기 마커를 사용하여 다른 셀을 선택하면 선택한 전체 범위가 엄격한 순서대로 날짜로 채워집니다.

같은 방식으로 요일 (월요일, 화요일, 수요일 ...) 또는 월 (1 월, 2 월, 3 월 ...)로 자동 완성 할 수 있습니다.

또한 텍스트에 숫자가 있으면 Excel에서 인식합니다. 채우기 마커를 사용하면 숫자가 증가하면서 텍스트가 복사됩니다. 예를 들어, 셀에 "4 빌딩"이라는 표현을 쓰면 채우기 마커로 채워진 다른 셀에이 이름이 "5 빌딩", "6 빌딩", "7 빌딩"등으로 변환됩니다.

자신의 목록 추가

Excel에서 자동 완성 기능의 기능은 특정 알고리즘 또는 미리 정의 된 목록 (예 : 요일)으로 제한되지 않습니다. 원하는 경우 사용자는 자신의 개인 목록을 프로그램에 추가 할 수 있습니다. 그런 다음 목록에있는 요소의 단어를 셀에 쓸 때 채우기 마커를 적용한 후이 목록은 선택한 전체 셀 범위를 채 웁니다. 목록을 추가하려면이 일련의 작업을 수행해야합니다.


보시다시피 Excel의 자동 완성 기능은 매우 유용하고 편리한 도구로 동일한 데이터, 중복 목록 등을 추가하는 데 시간을 크게 절약 할 수 있습니다. 이 도구의 장점은 사용자 정의 할 수 있다는 것입니다. 새 목록을 추가하거나 이전 목록을 변경할 수 있습니다. 또한 자동 완성을 사용하면 다양한 유형의 수학 진행으로 셀을 빠르게 채울 수 있습니다.

Chrome의 자동 완성 기능을 사용하면 온라인 양식에 정보 (예 : 주소 및 세부 정보)를 빠르게 입력 할 수 있습니다. 양식에 새 데이터를 표시하면 나중에 저장하기위한 제안을 볼 수 있습니다.

Chrome은 귀하의 허락없이 귀하의 데이터를 제 3 자에게 전송하지 않습니다. Google이 은행 카드 정보를 보호하는 방법에 대해 자세히 알아볼 수 있습니다.

자동 완성 데이터를 추가, 변경 또는 삭제하는 방법

저장된 데이터를 삭제하는 방법

  1. 지침에 따라 인터넷 사용 기록을 삭제하십시오.
  2. "고급"섹션에서 자동 완성 데이터.

결제를 Google Pay와 동기화하는 방법

Chrome의 데이터 동기화를 사용하도록 설정하고 온라인으로 구매 한 경우 신용 카드 정보를 Google Pay에 저장하도록 제안 할 수 있습니다.

자동 완성이 작동하지 않는 경우 수행 할 작업

양식을 작성할 때 정보가 자동으로 채워지지 않으면 문제는 다음과 같습니다.

  • 사이트가 충분히 안전하지 않아 Chrome에서 데이터를 전송하지 않습니다. 사이트의 안전이 확실하다면 기사의 팁을 적용하십시오.
  • Chrome 브라우저가 양식의 일부 필드를 결정할 수 없습니다.

Excel 통합 문서 시트 중 하나에는 회사 차량의 등록 데이터 데이터베이스가 있습니다. 두 번째 시트에는 직원과 차량의 개인 데이터가 입력되는 위임장이 보관됩니다. 차량 중 하나는 직원이 재사용하고 레지스트리에 데이터를 입력 할 때마다 운영자에게 추가 시간이 필요합니다. 이 프로세스를 자동화하는 것이 좋습니다. 이렇게하려면 데이터베이스에서 회사 차량에 대한 정보를 자동으로 가져 오는 공식을 작성하십시오.

Excel에서 데이터로 셀 자동 완성

설명을 위해 등록 데이터베이스를 개략적으로 표시합니다.

위에서 설명한 것처럼 레지스터는 별도의 Excel 시트에 있으며 다음과 같습니다.


여기에서 자동 완성 Excel 스프레드 시트를 구현합니다. 따라서 두 테이블의 열 머리글 이름은 동일하며 다른 순서로만 섞입니다.

이제 우리는 열 A의 셀 값으로 레지스터에 등록 번호를 입력 한 후 나머지 열이 해당 값으로 자동으로 채워지도록 수행해야 할 작업을 고려할 것입니다.

Excel에서 자동 완성 셀을 만드는 방법 :

  1. "등록자"시트에서 "데이터베이스"시트의 E 열에있는 등록 번호를 셀 A2에 입력하십시오.
  2. 이제 "등록"시트의 B2 셀에 자동 완성 셀의 수식을 Excel에 입력하십시오.
  3. “등록자”시트의 C, D, E 열에 대해 두 번째 행의 다른 모든 셀에이 수식을 복사하십시오.

결과적으로 테이블에 해당 셀 값이 자동으로 채워졌습니다.



자동 완성 세포를위한 공식의 원리

이 공식의 주요 역할은 INDEX 함수에 의해 수행됩니다. 첫 번째 인수는 자동차 데이터베이스에있는 소스 테이블을 정의합니다. 두 번째 인수는 행 번호이며 CASE 함수를 사용하여 계산됩니다. 이 함수는 "등록"시트에 입력 한 값을 포함하는 셀에 대한 "데이터베이스"시트의 테이블에서 위치 (이 경우 행 번호)를 결정하기 위해 E2 : E9 (이 경우 수직) 범위에서 검색합니다. A2에서.

INDEX 함수의 세 번째 인수는 열 번호입니다. 또한 다른 인수와 함께 공식 SEARCH로 계산됩니다. 이제 SEARCH 함수는 "등록"시트의 원래 열 헤더에 해당하는 헤더 이름을 포함하는 "데이터베이스"시트에서 테이블의 열 번호를 리턴해야합니다. SEARCH 함수의 첫 번째 인수 인 B $ 1에서 참조됩니다. 따라서 이번에는 차량 등록 데이터베이스의 첫 번째 행 A $ 1 : E $ 1 (이번 수평)에서만 값을 검색합니다. 소스 값의 위치 번호가 결정되고 (이번에는 소스 테이블의 컬럼 번호) INDEX 함수의 세 번째 인수에 대한 컬럼 번호로 리턴됩니다.

덕분에 레지스터 및 데이터베이스 테이블에서 열 순서가 섞여도 수식이 작동합니다. 당연히 두 테이블의 열 이름이 일치하지 않으면 수식이 작동하지 않습니다.

이 공유