2015-01-11 7 views
-1

Я получаю файл, который я хочу обрабатывать с помощью макроса в excel.Autonumbering на основе другого столбца

  1. Колонка A имеет значения от 1-10
  2. Колонка C содержит значение в С1
  3. Для каждого значения 6 в колонке А, соответствующая ячейка в колонке C в той же строке должна быть обновлена ​​с последовательно увеличивающееся значение, начиная со значения в C1.

У меня было что-то вроде ниже, но это дало много проблем, но это показывает концепцию, которую я ищу.

Sub customernumberext() 
    Dim a As Range, i As Long 

    Range("C1").Select 
    If ActiveCell.Value <> Empty Then 
     i = "C1" 
     For Each a In ActiveSheet.Range("a:a") where a.value = "6" 
      row c = i 
      i = i + 1 
     Next a 
    Else: MsgBox ("no number present") 
    End If 
End Sub 
+0

Hi Michiel, здесь мы не делаем оптимизацию кода, но мы помогаем в решении конкретной проблемы. Если ваш код работает нормально и вы хотите оптимизировать, я бы предложил вам опубликовать вопрос на [Обзор кода] (http://codereview.stackexchange.com/). В противном случае, пожалуйста, задайте один вопрос за раз: запустите свой код, посмотрите сообщение об ошибке, попробуйте его исправить, и если вам не удастся вернуться и отправить точный вопрос :) –

ответ

2

Если я правильно прочитал ваше описание и ошибочный код, это должно решить проблему.

Sub incr_C() 
    Dim rw As Long, lr As Long 
    With ActiveSheet 
     lr = .Cells(Rows.Count, 1).End(xlUp).Row 
     For rw = 2 To lr 
      If .Cells(rw, 1).Value = 6 Then 
       .Cells(rw, 3) = Application.Max(Range("C1:C" & rw - 1)) + 1 
      End If 
     Next rw 
    End With 
End Sub 
+0

Hi Jeeped, я все еще пытаюсь понять, но он отлично работает :-) Большое спасибо за решение! Я вспотел в течение многих дней, отлично, чтобы наслаждаться воскресеньем :-) – Michiel

Смежные вопросы