我有一個很大的電子表格,我被要求編輯。基本上無論數據來自何處,它都創建了多個個人姓名,國家,開始日期和結束日期的重複。是否有可能獲得相鄰單元格中的開始和結束日期並刪除重複的數據?excel,VBA,重複值
我提供了一個屏幕截圖。手動複製,粘貼和刪除操作需要很長時間,因爲此電子表格有超過2300行,其中大約50%是需要編輯的重複項。
感謝
我有一個很大的電子表格,我被要求編輯。基本上無論數據來自何處,它都創建了多個個人姓名,國家,開始日期和結束日期的重複。是否有可能獲得相鄰單元格中的開始和結束日期並刪除重複的數據?excel,VBA,重複值
我提供了一個屏幕截圖。手動複製,粘貼和刪除操作需要很長時間,因爲此電子表格有超過2300行,其中大約50%是需要編輯的重複項。
感謝
使用SQL是合適的。
Sub myQuery()
Dim strSQL As String
Dim strTable As String
Dim Ws As Worksheet
strTable = "[" & ActiveSheet.Name & "$]"
strSQL = "SELECT NAME, COUNTRY, MIN([Start Date]) as [Start Date] , max([End Date]) as [End Date] "
strSQL = strSQL & " FROM " & strTable & " "
strSQL = strSQL & " Where not isnull(NAME) "
strSQL = strSQL & " Group by NAME, COUNTRY "
Set Ws = Sheets.Add
exeSQL strSQL, Ws
End Sub
Sub exeSQL(strSQL As String, Ws As Worksheet)
Dim Rs As Object
Dim strConn As String
Dim i As Integer
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=Excel 12.0;"
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open strSQL, strConn
If Not Rs.EOF Then
With Ws
.Range("a1").CurrentRegion.ClearContents
For i = 0 To Rs.Fields.Count - 1
.Cells(1, i + 1).Value = Rs.Fields(i).Name
Next
.Range("a" & 2).CopyFromRecordset Rs
.Columns.AutoFit
End With
End If
Rs.Close
Set Rs = Nothing
End Sub
不幸的是,我無法訪問SQL Server Management Studio。有沒有另一種方式來運行沒有SQL? – Merj8