이전 포스팅에서 썼던 중복 데이터값 합산을 SQL을 이용해서 좀더 스마트하게 만들수 있더군요.
좌측의 데이터를 맨 우측의 양식으로 뽑아냅니다.
코드는 아래와 같습니다.
Option Explicit
Sub add_each_code()
Dim rowsCnt As Long
Dim strSQL As String, strConn As String, code As String
Dim Rs As ADODB.Recordset
Dim i As Integer
rowsCnt = Cells(Rows.Count, "A").End(3).Row
strSQL = "SELECT 코드, SUM(수량) AS 수량 "
strSQL = strSQL & "FROM [$A1:B" & rowsCnt & "] "
strSQL = strSQL & "GROUP BY 코드 "
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=Excel 12.0;"
Set Rs = New ADODB.Recordset
Rs.Open strSQL, strConn, adOpenForwardOnly, adLockReadOnly, adCmdText
Application.ScreenUpdating = False
If Not Rs.EOF Then
With Range("E1")
.CurrentRegion.ClearContents
For i = 0 To Rs.Fields.Count - 1
.Offset(, i) = Rs.Fields(i).Name
Next
.Offset(1).CopyFromRecordset Rs
End With
Else
MsgBox "자료가 없습니다", vbCritical
End If
Rs.Close
Set Rs = Nothing
End Sub
'엑셀 vba > 기타' 카테고리의 다른 글
엑셀에서 카카오톡 메세지 보내기 (1) | 2020.08.21 |
---|---|
VBA 맨위의 행으로 이동하는 명령어 (0) | 2020.03.05 |
날짜를 요일로 반환받기 (0) | 2019.12.23 |
중복 데이터값 합산하기 (0) | 2019.12.20 |
SQL SERVER 연결 (0) | 2019.12.17 |