|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.12.2011, 21:34 | #1 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 25
|
VBA_английский алфавит
Очень прошу помощи в написании макроса. Уже в отчаянии,- 2ой день не могу реализовать одну вещь. c VBA Excel знакома 5ый день, помогите, пожалуйста. Даны 2 столбца- А и В. в столбце А в столбик перечислены буквы латинского алфавита. В столбце В- отсортированные в порядке возрастания числа. Необходимо в столбце "С" сформировать значения по следующему правилу: для каждого блока из одинаковых чисел,стоящих в столбце В, каждому значению, присвоить букву алфавита согласно счету его повторения в данном блоке. Ниже привела пример исходных данных и то,что должно получиться в идеале.
A | B _______ A 1 B 1 C 1 D 1 E 1 F 2 G 2 H 2 I 6 J 7 K 8 L 8 M 8 N 9 O 9 P 10 Q 11 R 11 S 12 T 12 U 12 V 12 W 12 X 13 Y 13 Z 13 В итоге должно получиться: A__|B___|С___ A 1 A B 1 B C 1 C D 1 D E 1 E F 2 A G 2 B H 2 C I 6 A J 7 A K 8 A L 8 B M 8 C N 9 A O 9 B P 10 A Q 11 A R 11 B S 12 A T 12 B U 12 C V 12 D W 12 E X 13 A Y 13 B Z 13 C Помогите,пожалуйста, решить проблему. Я с диапазонами 2 день мучаюсь, уже не один алгоритм перепробовала реализовать,но пока безуспешно..:co nfused: |
10.12.2011, 21:37 | #2 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
Только макросом? Контрольная?
Код:
Последний раз редактировалось vikttur; 10.12.2011 в 21:40. |
10.12.2011, 21:43 | #3 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 25
|
vikttur
Спасибо,что отреагировали К сожалению, только макросом. Не контрольная Часть лабораторной работы, - 90% составляющей которой я уже сделала, вот осталось только решить вопрос с формированием этих несчастных значений в столбце С =,( |
10.12.2011, 21:50 | #4 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
|
10.12.2011, 22:07 | #5 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 25
|
Мне искренне жаль,что у Вас сложилось такое впечатление обо мне. Но я Вас прекрасно понимаю. Все нормально.
Никогда не обращалась по помощью на форумах и не регистрировалась,- при прикреплении файла пишет,что формат некорректный, возможно, потому что не поддерживает расширение с макросом. Попробую вставить код. Sub Кнопка1() ' Dim x As Integer row_end = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row x = 2 Do While Cells(x, 3) = Cells(x + 1, 3) Cells(x, 7) = "yes" x = x + 1 Cells(x, 7) = "yes" Loop Dim iDiapazon As Range, iArea As Range Set iDiapazon = [G2:G1000] iCriteria$ = "yes" For Each iArea In iDiapazon.SpecialCells(xlVisible).A reas iCount& = iCount& + Application.CountIf(iArea, iCriteria$) 'For Z = 3 To row_end 'Cells(Z, 7).Select 'Range("G1", "G5").Offset(, -5).Select Range([G2], Cells.SpecialCells(xlCellTypeLastCe ll)).Select 'Range("G1").Offset(, -5).Select Selection.Copy ActiveSheet.Paste Next 'Next End Sub Это последний из вариантов реализации. Вначале я грубо говоря выделила первый блок одинаковых чисел, присвоила значение "yes" в столбце G. Затем я хотела выделить заполненные в этом столбце G строчки, перенести область выделенного диапозона на столбец B (у меня там алфавит в столбец записан), скопировать эту область и переприсвоить скопированные значения в столбец I (а условии задачи я его обозначила через C). но в итоге происходит все со смещением и копируется к 3-ей строки. потому и написала,что мучаюсь через диапазоны, ибо из всех предыдущих вариантов реализации этот куда еще не шёл... |
10.12.2011, 22:10 | #6 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 25
|
скриншот прикрепила.
там по кнопке 2 происходит описанная выше ситуация. по кнопке 1 - еще более дикий вариант. идея была какая: Разбить на блоки эти повторяющихся значения и применить к каждому такому блоку процедуру присваения значений алфавита по написанному выше правилу. но у меня даже для первого блока на текущий момент не получилось корректно это сделать =( Последний раз редактировалось Rust_12; 10.12.2011 в 22:14. |
10.12.2011, 22:22 | #7 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
выбрал лимит на создание файлов.
Код:
Анализ,обработка данных Недорого
|
10.12.2011, 23:05 | #8 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 25
|
doober
Мое почтение! То,что Вы сделали- это прекрасно ! Спасибо Вам огромное за помощь !! Мне бы Ваш опыт, скорость действий, активизм и готовность прийти на помощь! ))) ...и простите, что относительно долго не отвечала )) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
алфавит | Sanyok1993 | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 31.03.2011 19:59 |
Циклический алфавит (c++) | nd0ut | Помощь студентам | 0 | 17.02.2011 12:07 |
Алфавит. | the_deer_one | Общие вопросы C/C++ | 2 | 13.09.2010 14:53 |
Алфавит | blok20 | Помощь студентам | 0 | 17.04.2010 20:55 |
Алфавит | Mikimaus | Общие вопросы C/C++ | 7 | 17.11.2009 19:15 |