Нужна срочная помощь "Чайнику" в VBA Excel !!!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
grad
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.07.2005 (Пт) 21:45

Нужна срочная помощь "Чайнику" в VBA Excel !!!!!

Сообщение grad » 30.07.2005 (Сб) 22:05

Уважаемые Знатоки, необходима, причем очень срочно, ваша помощь. Я только, только начинаю программировать, а задачу уже надо решить к 1 августа. Сам я к этому сроку не успею, просто в данный момент не знаю даже как начать. Все, что было найдено для "чайников" прочитано, но не успело "устаканиться" - не хватает, как всегда, немного времени. Ну и а главное - нет ни капли опыта, но есть желание.

Проблема моя такая:
Есть 2 файла EXcel. Во втором файле значения в столбце (пусть D) упорядочены по возростанию и промаркерованы в соседнем столбце C
также по возрастанию. Необходимо в первом файле в столбце (пусть F) найти все те же значения, что и столбце (D) 2-го файла, и промаркеровать в соседнем столбце (E) теми же значениями как и в столбце (C) 2-го файла. То есть найти значения в 1-ом файле такие же как во 2-ом, промаркировать их также как и во 2-ом, чтобы потом можно было их отсортировать по возрастанию.
Вот для такой простой задачи нужен VBA макрос, желательно с подробными пояснениями.

С огромным уважением ко Всем кто мне ответит и поможет сделать первый шаг в VBA.
Grad

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.07.2005 (Вс) 5:57

Код: Выделить всё
private sub sdfg(byval w1 as worksheet, byval w2 as worksheet)
  dim c as range
 
  for each c in w2.columns(6).cells
    if isempty(c.value) then exit for
    with w1.cells(application.worksheetfunction.match(c.value, w1.columns(4).cells, 1), 4)
      if .value=c.value then c.offset(0,-1).value=.offset(0,-1).value
    end with
  next
end sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 31.07.2005 (Вс) 9:16

grad
Код: Выделить всё
for each c in w2.columns(6).cells

присвоить c каждую ячейку из 6-ой колонки
Код: Выделить всё
if isempty(c.value) then exit for

если ячейка пустая то выйти из цикла

Код: Выделить всё
with w1.cells(application.worksheetfunction.match(c.value, w1.columns(4).cells, 1), 4)

найти якейку из 4-ого столбца удовлетворяющую условию (значение = значеннию c)

Код: Выделить всё
if .value=c.value then c.offset(0,-1).value=.offset(0,-1).value
если значение совпадает то присвоить значение в ячейке находящейся в 3 столбца из ячейки 5-ого столбца.

и тд.

grad
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 29.07.2005 (Пт) 21:45

Сообщение grad » 01.08.2005 (Пн) 2:54

Спасибо GSerg, Спасибо schalexey !
Буду теперь разбираться, а то вручную сортировать - такая тоска.
Приятно получить помощь.
Еще раз огромное Всем спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot], SemrushBot и гости: 5

    TopList