목록컴퓨터 (366)
rand(life)
now 현재의 날짜와 시간 (ex: 2017-07-16 오후 3:17:23)date 현재의 날짜만 (ex: 2017-07-16) time 현재의 시간만 (ex: 오후 3:17:59 )weekday(날짜, 옵션) 요일 옵션: 주의 첫요일 설정한다. 상수: 1 일요일, 2 월요일 3, 화요일... 결과값: 1~7의 숫자로 나옴예를 들어, weekday(date, vbmonday) 라고하면 오늘 날짜가 무슨 요일인지를 월요일을 1로 해서 숫자로 알려준다. 이 글을 쓰는 날은 일요일ㅇ이므로, 7이 나온다.만약, weekday(date, vbsunday)라고 했다면 1이 나온다. DatePart (옵션, 날짜/시간): 날짜.시간에서 필요한 부분 추출 옵션: yyyy 년도, q 분기, m 달, y 년 중 몇번째 날..
중복없이 값을 배열에 넣기 위해 그동안 컬렉션을 사용했었는데, 많이 불편했다. 그런데 이번에 Scripting.Dictionary를 사용하는 방법을 알게 되었다. 원문은 여기 그리고 여기번역문은 여기이다. 상당히 편리하다. 원문의 설명에 따르면 Scripting.Dictionary를 사용하기 위해서는 VB편집기에서 설정을 해주어야한다고 한다. VB편집기 상단 - 도구 - 참조에서Microsoft Scripting Runtime을 체크하면 된다그런데 엑셀2016 기준으로 위의 체크를 하지 않아도 작동한다. 왜 그런지는 좀 더 알아봐야 할 듯 해당 기능을 이용한 매크로 예제이다. exists메서드가 유용하게 사용된 경우. 기본적인 몇가지 코드. 위의 링크에서는 복사가 안되어서...
year grade 2014 A 2015 B 2016 D 2017 A 위와 같은 표를 위의 그림처럼 차트로 표현하고 싶을때가 있다. 그런데 엑셀에서 Y축은 숫자만 가능하지, 저렇게 문자로는 가능하지 않다. 그래서 굳이 저렇게 표현하려면 약간의 편법을 써야한다.외국의 한 사이트에서 가져온 방법이다. (역시 덕중에 제일은 양덕이라고, 엑셀의 기상천외한 답들은 대부분 양넘들이다) year Number grade 2014 10 A 2015 20 B 2016 40 D 2017 10 A 우선, 위와 같이 문자에 대응하는 숫자를 넣는다. 차트를 만들었을때 문자등급 사이의 간격을 생각하여 적당한 숫자로 넣는다. 수작업으로 넣어도 되고, 데이터가 많다면 따로 테이블을 만들어 VLOOKUP을 사용해서 수식으로 넣을 수도 ..
위 그림 A:C열의 데이터에서 E1의 조건에 해당하는 값을 F:H에 불러오는 수식이다. =IFERROR(INDEX($B$2:$B$9,1/LARGE(INDEX((ISNUMBER(FIND($E$2,$C$2:$C$9)))/ROW($C$2:$C$9),),ROW(C4))-1),"") 이 수식에 대한 설명은 어느 분이 해놓으신 수식 설명으로 대신한다. 완전히 똑같은 수식은 아니지만, 대략적인 원리는 같다. 설명이 깔끔하고 이해하기 쉽게 되어있다.
cmd 명령의 결과를 텍스트파일로 받기아래는 ping의 결과 Option Explicit Sub checkping() Dim cmd As String Dim res, goWSH, aRet Dim s As String, e As String Set goWSH = CreateObject("WScript.Shell") cmd = "ping -n 1 " & [a1] Set aRet = goWSH.exec(cmd) res = CStr(aRet.stdout.readall()) s = InStr(res, "(") e = InStr(res, "),")[b1] = Mid(res, s + 1, e - s - 1)End Sub
지식인에서 답변을 달기 위해 코딩을 하다가 문득 생긴 의문이다. 범위대 범위를 한번에 비교할 수 있는 방법은 없을까?그래서 지식인에 질문을 했다. A1:C1 범위와 A2:C2 범위의 값을 각각 비교하고 싶어서(즉, A1과 A2를 비교, B1과 B2를 비교, C1과 C2를 비교)if range("A1").resize(,3) = range("A2").resize(,3) then 이렇게 했더니 오류 메시지가 뜨네요.If [a1] = [a2] and [b1] = [b2] and [c1] = [c2] then이렇게 하나씩 비교하는 수 밖에 없나요?범위대 범위로 한번에 비교하는 방법이 있는지 궁금합니다. 두 개의 답변이 달렸다. 그것도 지식인 랭킹 1,2위를 하시는 분들께서! 한분의 답은 For ~ Next 순환문..
지식인 질문에 대한 답이다. 나는 만들어진 단어 9개씩의 한 줄도 중복되는 것이 있을거라보고 중복을 없애기 위해 Collection을 이용했는데, 큰형님은 그런 과정 없이 숫자만 100으로 바꾸었다. 25개 중에서 9개 뽑는 정도로는 쉽게 중복되지 않는 것이라 본 것일까..... Sub Macro() Dim valR(), T() As Variant Dim nc As New Collection Dim rng As Range Dim i As Integer, c As Integer, n As Integer, r As Integer Dim str As String Dim s As Variant Set rng = Range("B3:B27")Do Until nc.Count = 100 '콜렉션이 100개가 될때까지 ..
겉보기에는 빈칸인데 F5 이동키를 이용해서 빈칸을 선택하려해보면 안잡히는 셀이 가끔 있다. 주로 인터넷에서 자료를 복사해오거나 할 때 주로 생기는데, 수식이나 기능을 써야할때 이 것들 때문에 오류가 나서 짜증나게 한다. 이런 유령문자를 없애는 데는 몇 가지 방법이 있는데, 여기서는 두 가지를 소개한다. 첫번째는 텍스트 나누기를 이용하는 방법이다. 아래처럼 유령문자가 있는 열을 선택하고텍스트나누기를 실행하고, 첫단계에서 바로 "마침"을 누르는 것이다. 이 방법은 간단해서 좋은데, 텍스트나누기는 여러 열을 선택하고 한꺼번에 실행할 수가 없기 때문에, 해야할 열이 많거나 여러 파일에서 같은 일을 해야하면 VBA를 이용해야한다. Sub QuickReplace()Dim XDim lngRow As LongDim l..