使用宏更改多个工作表中的单元格中的值

时间:2014-12-14 18:54:45

标签: excel vba button

我对VBA很新,与我在这里阅读的内容相比,Excel知识有限。我的宏很麻烦。我有一张4张工作簿。每个工作表都有基本的命令按钮,用于发出一个简单的宏(从一个单元格值减去1,在另一个单元格中添加1)。我遇到问题的地方是为3个按钮创建宏代码。这些按钮需要发出类似的命令,但我需要它们来调整所有工作表中的选择单元格值,而不仅仅是按钮所在的活动工作表。

这3个特定的命令按钮位于“表4”上。单元格位于所有4个工作表中。我可以创建一个宏(通过单击按钮激活),可以在所有4个工作表中使用吗?

按钮1 - 需要在工作表4上将单元格g10的值加1           - 但也从单元格c4&的值减1表2中的c7           - 表3中单元格c6的值减去1。

其他按钮都是这样的。我希望这解释得足够多。我目前正在阅读关于Excel和VBA的书籍,但是很忙,这很慢。任何帮助是极大的赞赏。先感谢您。冷淡的:))

2 个答案:

答案 0 :(得分:1)

您只需要为每个按钮添加一个事件,然后在子例程中,在操作包含的单元格时专门命名工作表。 Avoid using select statements只需进行所需的更改即可。我展示了一些不同的方法来做同样的事情,以便将来你可以根据自己的需要进行调整。有时你会想要专门命名Range。有时您会希望它由其他代码或循环动态创建。

点击按钮有一个事件处理程序。

Private Sub Button1_Click()
    Call ChangeVals
End Sub

您需要从每个按钮点击事件中调用该子。

Private Sub Button2_Click()     'Repeat for the other two.
    Call ChangeVals
End Sub

这是更改值的实际子。

Private Sub ChangeVals()
'Using Range(ColRow)
    Sheets("Sheet4").Range("G10") = Sheets("Sheet4").Range("G10").Value + 1 

'Using Cells(rowNumber, ColLetter)  ----This is good if the column won't change.
    Sheets("Sheet2").Cells(4,"C") = Sheets("Sheet2").Cells(4,"C").Value - 1
'Using Cells(rowNumber, ColNumber)  ----This is my preferred way, loopable with numbers.
    Sheets("Sheet2").Cells(7,3) = Sheets("Sheet2").Cells(7,3).Value - 1
'Lastly
    Sheets("Sheet3").Range("C6") = Sheets("Sheet3").Range("C6").Value - 1

End Sub

答案 1 :(得分:0)

考虑:

Sub buttton1()
    Dim r1 As Range, r2 As Range, r3 As Range
    Set r1 = Sheets("Sheet4").Range("G10")
    Set r2 = Sheets("Sheet2").Range("C4,C7")
    Set r3 = Sheets("Sheet3").Range("C6")

    r1 = r1 + 1
    r2 = r2 - 1
    r3 = r3 - 1
End Sub