Excel - 编辑按公共值选择列

时间:2012-03-03 09:02:35

标签: excel excel-2007

我有一组值,就像这样。

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,我该怎么做?我对此非常陌生,任何帮助都将不胜感激!谢谢。

Excel 2007。

2 个答案:

答案 0 :(得分:1)

在普通Excel或VBA中执行此操作的最快方法是使用Excel的Paste Special功能

手动方法

  • 在空单元格中,输入-1(或第二种情况下为1)
  • 复制该单元格
  • 突出显示您的一组值
  • 编辑....选择粘贴....添加以将该值添加到所有单元格

这里提供了这种技术的乘法示例Mr Excel

VBA方法

针对xl07 / 10修改的Zack Barresse代码,该代码使用A列中的空白单元格进行添加

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

答案 1 :(得分:0)

首先,要打开VBA编辑器,请尝试 Alt + F11

下面的代码显示了一种做你想做的事情。
不要复制和粘贴它 它可以帮助您开始使用自己的代码。

快速解释:

  1. 声明一些变量,
  2. 使用两个for循环迭代一小部分单元格,
  3. 将每个单元格的值递增1。
  4. 之后你已经编写了自己的代码,你应该可以通过按 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