Страница 1 из 3
Сравнение
Добавлено: 09 дек 2008, 07:30
artssp
Здравствуйте подскажите пожалуйста. Есть один лист Ексел, в нем есть много колонок, одна из которых ФИО, и есть второй лист с колонкой ФИО. Как сделать чтоб из второго листа фамилии сравнились с фамилиями первого листа, и если есть совпадения, скопировать все данные по этой фамилии на другой лист. Может есть такой уже пример.
Re: Сравнение
Добавлено: 09 дек 2008, 08:33
heisnod
С запросом поэксперементируй
Sub Sopostavlenie()
Rows("4:5000").ClearContents
Dim conn1, conn2, conn3, conn4 As New ADODB.Connection
Dim rs1, rs2, rs3, rs4 As New ADODB.Recordset
Dim str_conn, connDBF As String
Dim sSQL1, ssql2, ssql3, ssql4 As String
Set conn1 = New ADODB.Connection
Set rs1 = New ADODB.Recordset
str_conn = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + ThisWorkbook.Path + "\" + ThisWorkbook.Name + ";" _
& "Extended Properties=""Excel 8.0;HDR=Yes"";"
On Error Resume Next
conn1.Open str_conn
On Error GoTo 0
If conn1.State <> 1 Then
MsgBox str_conn
Exit Sub
End If
rs1.ActiveConnection = conn1
sSQL1 = "SELECT * From [ЛистРаз$A2:E25000] as people1, [ЛистДва$A2:E25000] as people2 where (people1.ФИО) like (people2.ФИО)"
With rs1
.CursorType = adOpenStatic
.LockType = adLockReadOnly
End With
Set rs1 = conn1.Execute(sSQL1)
ThisWorkbook.Sheets("ЛистТри").Range("A4").CopyFromRecordset rs1
rs1.Close
conn1.Close
Set conn1 = Nothing
Set rs1 = Nothing
End Sub
Re: Сравнение
Добавлено: 09 дек 2008, 16:58
Aent
Можно для выборки просто воспользоваться массивной формулой
Re: Сравнение
Добавлено: 09 дек 2008, 19:00
heisnod
Приведите пожалуйста пример.
Re: Сравнение
Добавлено: 09 дек 2008, 20:08
Teslenko_EA
Здравствуйте
heisnod.
По этой ссылке:
http://ifolder.ru/3765138
Вы найдере
DataFromTable.rar 15.23 к
"пример" решения подобной задачи.
Евгений.
Re: Сравнение
Добавлено: 09 дек 2008, 22:28
Teslenko_EA
To heisnod
Вы выложили код с рекомендацией "поэксперементируй".
Ваши эксперименты очевидно увенчались успехом, поделитесь радостью, ничего подобного я ранее не встречал. Максимум удавалось открыть рекордсет с таблицей (целиком) в качестве источника записей, а не диапазонов на разных листах.
Евгений.
P.S. рекомендую заключать выкладываемый код в тэги [соde]...[/соde]
Re: Сравнение
Добавлено: 09 дек 2008, 23:00
heisnod
Teslenko_EA писал(а):Ваши эксперименты очевидно увенчались успехом, поделитесь радостью, ничего подобного я ранее не встречал. Максимум удавалось открыть рекордсет с таблицей (целиком) в качестве источника записей, а не диапазонов на разных листах.
Поясните вопрос, ничего не понял.
Re: Сравнение
Добавлено: 09 дек 2008, 23:13
Teslenko_EA
heisnod,
Вы убедились в работоспособности кода прежде чем выкладывать его?
Re: Сравнение
Добавлено: 09 дек 2008, 23:27
heisnod
Код практически не менял, задача выполнена в пределах того, что просил автор топика.
А вот Вашу ссылку Евгений до сих пор не могу скачать. Уже не первый раз в восторге от Ваших ссылок.
Re: Сравнение
Добавлено: 09 дек 2008, 23:41
Teslenko_EA
heisnod, "не могу скачать" поправимо.