2013-07-24 5 views
2

Быстрый вопрос:обработка VBA Excel диапазоны для каждого

Я установил три диапазона sourceRng1 и sourceRng2targetRng. Все равны по размеру.

Я хочу, чтобы достичь этого:

For each cell in targetRng 
    cell.value = sourceRng1/sourceRng2 
next cell 

где индекс sourceRng1 и sourceRng2 подскакивает один шаг в каждой итерации.

Так что, если первое и второе значения sourceRng1 и sourceRng2 являются 4 7 и 1 3

затем cell.value = 4/1 в первой итерации. cell.value = 7/3 во втором.

Любое предложение о том, как это сделать?

+0

кажется, что вы знаете, как это сделать. – matzone

ответ

2
Dim x as long 
For x=1 to targetRng.cells.count 
    targetRng.Cells(x).value = sourceRng1.cells(x).value/sourceRng2.Cells(x).value 
next cell 
+0

+1 - короткий и сладкий. Красиво сделано. –

1

Существует решение, не VBA, а также:

  1. выберите targetRng
  2. формула типа =sourceRng1/sourceRng2
  3. нажмите Ctrl + Сдвиг + Введите ввести это как a Array formula

enter image description here

Даунсайд быть, вы не можете редактировать - например, delete - части формул Array отдельно, только когда вы выберете всю область => убедитесь, что используете другой цвет фона или комментарии, чтобы отличить targetRng от других ячеек.