我有一个很大的电子表格,我被要求编辑。基本上无论数据来自何处,它都创建了多个个人姓名,国家,开始日期和结束日期的重复。是否有可能获得相邻单元格中的开始和结束日期并删除重复的数据?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