Excel - Изменить Выберите столбцы по общему значению

У меня есть набор значений, как это.

5   5   5   5   5   5
9   7   7   6   6   55
5   4   4   7   5   30
10  8   7   6   9   60
9   9   9   9   9   80
20  20  20  20  20  20

Допустим, я хочу изменить все значения на -1 или +1, как мне это сделать? Я почти новичок в этом, и любая помощь будет принята с благодарностью! Спасибо.

Эксель 2007.


person Sharks Sri    schedule 03.03.2012    source источник
comment
Какой язык программирования? Если вы имели в виду, что хотите сделать это, используя excel, то не в том месте. Попробуйте где-нибудь как суперпользователь.   -  person Ash Burlaczenko    schedule 03.03.2012
comment
@Ash: я думаю, что Sharks хочет использовать VBA для этого.   -  person mechanical_meat    schedule 03.03.2012


Ответы (2)


Самый быстрый способ сделать это в обычном Excel или с помощью VBA — использовать функцию Excel Paste Special.

Ручной метод

  • В пустую ячейку введите -1 (или 1 для вашего второго случая)
  • Скопируйте эту ячейку
  • выделить свой набор ценностей
  • Изменить.... Специальная вставка.... Добавить, чтобы добавить это значение во все ячейки

Пример умножения этого метода приведен здесь из Mr Excel.

Метод VBA

Код от Zack Barresse, измененный для xl07/10, в котором используется пустая ячейка в столбец А для добавления

Option Explicit
Sub psAdd()

Dim y As Integer    'The multiplier value, user-defined
Dim x As Range    'Just a blank cell for variable
Dim z As Range    'Selection to work with
Set z = Selection
y = Application.InputBox("Enter amount to add to selection:", _
                         Title:="Add to selection", Default:=10, Type:=1)
Set x = Cells(Rows.Count, "A").End(xlUp).Offset(1)
If y = 0 Then Exit Sub    'Cancel button will = 0, hence cancel
If x <> "" Then
    Exit Sub
Else: x.Value = y
    x.Copy
    z.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
    Application.CutCopyMode = False    'Kill copy mode
End If
x.ClearContents    'Back to normal : )
End Sub
person brettdj    schedule 03.03.2012

Прежде всего, чтобы открыть редактор VBA, попробуйте Alt+F11.

В приведенном ниже коде показан один из способов сделать то, что вы хотите.
Не копируйте и не вставляйте его.
Он поможет вам начать работу над собственным кодом.

Краткое объяснение:

  1. объявить некоторые переменные,
  2. используйте два цикла for для перебора небольшого диапазона ячеек,
  3. увеличить значение каждой ячейки на 1.

После написания собственного кода вы сможете запустить его, нажав F5.

option explicit

sub increment_cell_values()
    dim r as long
    dim c as long
    dim ws as worksheet

    set ws = activesheet
        for r = 1 to 6
            for c = 1 to 6
                ws.cells(r,c).value = ws.cells(r,c).value + 1
            next c
        next r
    next ws
end sub
person mechanical_meat    schedule 03.03.2012