|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Создание макроса для поиска одинаковых значений в ячейках и укомплектовывания |
|
|||||
|
|
2010 - [решено] Создание макроса для поиска одинаковых значений в ячейках и укомплектовывания
|
|
Пользователь Сообщения: 63 |
Доброго времени суток уважаемые форумчане.
Существует проблема в написании макроса в Excel. Честно говоря я немного далек от этого, лет 5 не занимался подобным и тупо все забыл. Необходимо создать макрос для поиска и сортировки наименований таблицы и записывать их в отдельные строки. Пример, как это должно быть в пристежке. Т.е. макрос должен найти одинаковые значения во всем столбце (до 100 строк) и перенести наименование, ячейку и количество, для каждого наименования отдельно. Люди добрые, помогите кто чем может)) Может кто писал подобное.... |
|
|
Отправлено: 17:32, 20-01-2015 |
|
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Iska, На самом деле круто, спасибо, только нужно чтобы это все графически выводилось, а не в окне отладки.
|
|
------- Отправлено: 12:59, 27-01-2015 | #21 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Если опишете и покажете, как именно надо — попробуем. Сразу скажу, что вариант «Всё на том же листе в виде подтаблиц» мне не сильно нравится.
Конечная цель этих действий какова вообще? |
|
Отправлено: 13:18, 27-01-2015 | #22 |
|
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Я скинул файл вчера, как сам навоял, я таблицу раскидал по разным листам......было бы не плохо, чтобы макрос выкидвал эту таблицу на другой лист в таком примерно виде
|
|
------- Отправлено: 15:58, 27-01-2015 | #23 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Попробуйте так (замените существующую процедуру «Sample()»):
Скрытый текст
Sub Sample()
Dim objConnection As Object
Dim objRecordSet1 As Object
Dim objRecordSet2 As Object
Dim objCurRegion As Range
Dim objWorksheet As Worksheet
Dim objRange As Range
Set objConnection = CreateObject("ADODB.Connection")
With objConnection
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
.Open
End With
Set objCurRegion = ThisWorkbook.Worksheets.Item("Адресная программа").Range("B2").CurrentRegion
Set objRecordSet1 = objConnection.Execute( _
"SELECT DISTINCT Наименование " & _
"FROM [Адресная программа$" & objCurRegion.Address(False, False) & "] " & _
"WHERE NOT Наименование IS NULL ORDER BY Наименование" _
)
Set objRecordSet2 = objConnection.Execute( _
"SELECT Наименование, Ячейки, Количество " & _
"FROM [Адресная программа$" & objCurRegion.Address(False, False) & "] " & _
"WHERE NOT Наименование IS NULL ORDER BY Наименование, Ячейки" _
)
objRecordSet1.MoveFirst
Set objWorksheet = ThisWorkbook.Worksheets.Add()
Set objRange = objWorksheet.Range("A1")
Do Until objRecordSet1.EOF
Set objCurRegion = objRange
objRange.Value = objRecordSet1.Fields.Item("Наименование").Value
With objRecordSet2
.Filter = "Наименование='" & objRecordSet1.Fields.Item("Наименование").Value & "'"
Do Until .EOF
With .Fields
objRange.Offset(0, 1).Value = .Item("Ячейки").Value
objRange.Offset(0, 2).Value = .Item("Количество").Value
End With
.MoveNext
Set objCurRegion = Union(objCurRegion, objRange, objRange.Offset(0, 1), objRange.Offset(0, 2))
Set objRange = objRange.Offset(1, 0)
Loop
End With
With objCurRegion.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With objCurRegion.Columns.Item(1)
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
objRecordSet1.MoveNext
Set objRange = objRange.Offset(1, 0)
Loop
objWorksheet.Columns("A:C").AutoFit
Set objRange = Nothing
Set objCurRegion = Nothing
Set objWorksheet = Nothing
objRecordSet2.Close
objRecordSet1.Close
objConnection.Close
Set objRecordSet2 = Nothing
Set objRecordSet1 = Nothing
Set objConnection = Nothing
End Sub
|
|
Отправлено: 17:31, 27-01-2015 | #24 |
|
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Iska, Хорошо, будь другом, подскажи если знаешь, как сделать, надо закрасить ячейки на против цифр, причем диапазон цифр может меняться, нужна процедура, при нажатии на кнопку он просматривал столбец находил цифру 1 и закрашивал рядом стоящую ячейку
|
|
------- Отправлено: 10:19, 28-01-2015 | #25 |
|
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать У же не надо, сам решил, спасибо)
|
|
------- Отправлено: 11:15, 28-01-2015 | #26 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата dyshes90:
. |
|
|
Отправлено: 13:06, 28-01-2015 | #27 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Разное - EXCEL - поиск одинаковых значений в ячейках | eva.k | Microsoft Office (Word, Excel, Outlook и т.д.) | 6 | 07-02-2014 14:33 | |
| 2010 - [решено] Формулы не считают при изменении значений в ячейках | 81ruslan81 | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 24-12-2012 18:39 | |
| 2007 - [решено] Excel - Проверка значений в ячейках | vlad20 | Microsoft Office (Word, Excel, Outlook и т.д.) | 7 | 25-06-2012 20:53 | |
| Поиск одинаковых значений в одной таблице MySQL | blackmane | Вебмастеру | 1 | 01-04-2012 14:27 | |
| 2003/XP/2000 - Excel: Проверка значений в ячейках (как лучше сделать) | ondo | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 09-11-2010 01:46 | |
|