用macros改变多个单元格中的值

我对VBA相当陌生,与我在这里阅读的内容相比,Excel知识有限。 我有我的macros的麻烦。 我有一个4工作簿。 每个工作表都有一个基本的命令button,它们发出一个简单的macros(从一个单元格值减1,在另一个单元格中加1)。 我遇到麻烦的地方是为3个button创buildmacros代码。 这些button需要发出类似的命令,但是我需要它们来调整所有工作表中的select单元格值,而不仅仅是button所在的活动表单。

这3个特定的命令button位于“工作表4”上。 这些单元格位于所有4张工作表中。我可以创build一个在所有4张工作表上都可以工作的macros(由单击button激活)?

button1 – 需要在表格4上的单元格g10的值上加1,但也要在表格2上的单元格c4和c7的值上减1
– 从表格3中单元格c6的值减1。

其他button都完全像这样。 我希望这足以解释。 我目前正在阅读有关Excel和VBA的书籍,但相当忙,这很慢。 任何帮助是极大的赞赏。 先谢谢你。 冷淡:)

考虑:

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 

您只需要为每个button添加一个事件,然后在子例程中,当您操作包含的单元格时,专门命名工作表。 避免使用select语句 ,只需进行所需的更改。 我展示了几种不同的方式来做同样的事情,以便将来可以根据自己的需要进行调整。 有时你会想特别命名该范围。 有时你会希望它是由其他代码或循环dynamic创build的。

有一个button点击的事件处理程序。

 Private Sub Button1_Click() Call ChangeVals End Sub 

您将需要从每个button单击事件调用该子。

 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