반응형
셀 데이터 분할 및 합치기
Dim split_data() As String
Dim Data As Variant
split_data = Split(Sheet1.Range("C1").Value, ",")
'// 각 요소를 하나씩 출력
For Each Data In split_data
msgbox Data
Next
'// 분할된 요소 다시 합치기
msgbox Join(split_data, ",")
셀 데이터 초기화
Sheet1.Range("B1:B15,f1:f15").ClearContents
웹 페이지 정보 수집
Dim web_element As Object
Set MyBrowser = CreateObject("InternetExplorer.Application")
With MyBrowser
.Navigate [웹사이트 URL]
'// wait browser는 다른 sub로 정의하기
Wait_Browser MyBrowser
Application.Wait (Now + TimeValue("0:0:3")) '// 3초간 열릴 때까지 대기
'// HTML 상위 요소 정의
Set HTMLDoc = .Document
'// 요소 추출
On Error Resume Next
For Each web_element In HTMLDoc.getElementsByClassName("test-keyword")(1).getElementsByTagName("a")(0)
msgbox web_element.getAttribute("attbute-date")
On Error Resume Next
Next
End With
MyBrowser.Quit
Set MyBrowser = Nothing
Sub Wait_Browser(Browser As InternetExplorer, Optional t As Integer = 1)
While Browser.Busy Or Browser.ReadyState <> 4
DoEvents
Wend
Application.Wait DateAdd("s", t, Now)
End Sub
특정 단어가 포함된 행만 보이기
Dim keyword As String
Dim keyword_len As Integer
Dim keyword1 As String
Dim keyword2 As String
keyword = Sheet1.Cells(3, "C")
'// 아래 길이 구하는 코드는 무시하고 keyword1과 keyword2에 필터링하려는 텍스트만 삽입한다
'// ex) keyword1= *미역국*
keyword_len = Len(keyword)
keyword1 = "*" + Left(keyword, (keyword_len / 2)) + "*"
If Int(((keyword_len / 2) - 1)) <> 0 Then
keyword2 = "*" + Left(keyword, (keyword_len / 2) - 1) + "*"
Else
keyword2 = "*" + keyword + "*"
End If
'// 키워드가 포함된 셀만 보여줌
Sheet1.Cells(9, "A").AutoFilter 2, Array(keyword1, keyword2), xlFilterValues
Sheet2.Cells(2, "G").AutoFilter 6, Array(keyword1, keyword2), xlFilterValues
필터링 후 보이는 셀들만 저장한 뒤 순서 번호 재배열
Dim Workrng As Object
Dim xIndex As Integer
Dim Rng As Object
'// 보이는 셀들만 필터
Set Workrng = Sheet2.Range("A1:A15").Columns(1).SpecialCells(xlCellTypeVisible)
'// 필터링 하느라 뒤엉킨 순서 번호 재배열
'// 단점은 필터 해제 후 숫자를 다시 맞춰줘야함
xIndex = 1
For Each Rng In Workrng
Rng.Value = xIndex
xIndex = xIndex + 1
Next
'// Sheet1.Range("A9:Q44").Sort Key1:=Sheet1.Range("H9"), Order1:=xlAscending, Key2:=Sheet1.Range("M9"), Order2:=xlDescending
파일 저장
Dim TF As Object
Dim TFT As Object
Set TF = CreateObject("scripting.filesystemobject")
Set TFT = TF.Createtextfile(ThisWorkbook.Path & "\txt\" & title & ".txt")
'// 마지막 행 번호 구하기
'// lastRow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row
TFT.WriteLine "data1" & " " & "data2"
TFT.WriteLine "data3" & " " & "data4"
TFT.Close
Set TF = Nothing
Set TFT = Nothing
반응형
'업무 자동화' 카테고리의 다른 글
python opencv (0) | 2022.01.16 |
---|---|
뽑기 확률 테스트하기 (3) | 2021.12.07 |
윈도우10 드라이브 숨김 배치파일 (0) | 2021.08.16 |
word(워드) 매크로 설정 (0) | 2021.07.29 |
윈도우 컨텍스트 메뉴 설정 배치파일 (0) | 2021.07.27 |