宏将单元格范围的值更改为仅值

时间:2013-05-31 16:48:45

标签: excel vba excel-vba

A1包含一年中12个月的清单 B2M2行是月 - 1月到12月 B3B7每个月评分的分类

我想编写一个按钮来执行以下操作 当我单击按钮时,我希望宏在单元格范围A1中的单元格B2:M2上查找月份。然后,在匹配单元格中,仅将row 3上的值更改为row 7值。现在rows 37与其他单元格相关联。我希望它们仅转换为值。

E.g。如果在A1中选择了1月。然后,宏会将B2标识为1月,并将B3:B7的值更改为仅值。

1 个答案:

答案 0 :(得分:0)

我有这个电子表格:

enter image description here

输入位于A1

为简化起见,我在A2中使用了公式:=MATCH(A1,$B$2:$M$2,0)+1

然后添加了名为PressMe按钮。

在设计模式下右键单击按钮并查看“查看代码”我有以下内容:

Private Sub cmdPressMe_Click()

Application.ScreenUpdating = False

    Dim colNumber As Integer
    colNumber = Me.Range("A2").Value
    With Me.Range(Me.Cells(3, colNumber), Me.Cells(7, colNumber))
        .Copy
        .PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
    Me.Range("A1").Select

Application.ScreenUpdating = True

End Sub

以上不使用剪贴板的替代方法如下:

Private Sub cmdPressMe_Click()

Application.ScreenUpdating = False

    Dim colNumber As Integer
    colNumber = Me.Range("A2").Value

    Dim firstRange As Range

    Set firstRange = Me.Range(Me.Cells(3, colNumber), Me.Cells(7, colNumber))
    firstRange.Value = firstRange.Value

Me.Range("A1").Select
Application.ScreenUpdating = True

End Sub