VBA скрипт за Excel

7 отговора 0 прегледа
#1

VBA скрипт за Excel

Моля за помощ !!! Имам една таблица на Excel. В нея една от колоните съдържа номера, между които има и повтарящи се. Идеята ми е да проверява тази колона ред по ред и в съответствие с номера в тази колоната, ако номера го няма повтарящ в цялата колона, да прати целия ред в Sheet2, a ако номера се повтаря на няколко други реда от колоната, да копира в Sheet3 само първия срещнат ред с този номер в тази колона, а останалите редове да ги игнорира. Не знам дали казах точно какво искам, но се надявам че съм бил достатъчно изчерпателен. Ако все пак имате въпроси за доуточнение, питайте. Можете ли да ми помогнете?

A false life is equal to death. Be your true self... like me !!!
Отговор
в отговор на MadMax2OOO #2

Re: VBA скрипт за Excel

Къде си, бат Паньо?!?

Отговор
в отговор на MadMax2OOO #3

Re: VBA скрипт за Excel

Разгледай примера тук:
[линк]

В твоя случай просто трябва да добавиш копирането в друг "шийт" ако клетката е дублирана или в още по-друг ако не е.

Можеш да използваш пропъртитата rows и cells на usedRange. Няма нищо трудно.

Успех

Отговор
в отговор на MadMax2OOO #4

Re:

Можеш да се справиш и без VBA, с няколко прости сортирания.

Отговор
в отговор на commercial #5

Re: VBA скрипт за Excel

Човекът не е казал вълшебните думички "бързо" или "спешно".

Отговор
в отговор на MadMax2OOO #6

Re: VBA скрипт за Excel

Dim Con As New Connection

Con.Open ("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyFile.xls;")

Set Rst = Con.Execute("SELECT * FROM [sheet1$]")

И после ползвай цялата мощ на SQL

Отговор
в отговор на Samuel_Vimes #7

Re: VBA скрипт за Excel

Замени
Con.Open ("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyFile.xls;")

със

Con.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyFile.xls;Extended Properties='Excel 8.0;HDR=Yes';")

И ще можеш да правиш инсерт и ъпдейт директно във файла

Отговор
в отговор на MadMax2OOO #8

Re: VBA скрипт за Excel

Какъв SQL, какви макроси?...
Маркираш колоната -> Menu -> Data -> Filter -> AdvancedFilter -> Отмяташ Unique Records Only.

Отговор