Страница 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, "не могу скачать" поправимо.