[英]changing values in cells across multiple sheets with macro
我对VBA还是很陌生,与我在这里阅读的内容相比,我对Excel的了解有限。 我的宏遇到问题。 我有一本4页的工作簿。 每个工作表都有基本的命令按钮,这些按钮发出一个简单的宏(从一个单元格值减去1,在另一个单元格值中减去1)。 我遇到麻烦的地方是为其中三个按钮创建了宏代码。 这些按钮需要发出类似的命令,但是我需要它们来调整所有工作表上的选择单元格值,而不仅仅是按钮所在的活动表。
这3个特定的命令按钮位于“页面4”上。 单元格位于所有4个工作表中。我可以创建一个可在所有4个工作表中使用的宏(通过单击按钮激活)吗?
按钮1-需要在工作表4的单元格g10的值上加上1-但还要从工作表2的单元格c4&c7的值减去1
-从工作表3上的单元格c6的值减去1。
其他按钮都完全像这样。 我希望这足以解释。 我目前正在阅读有关Excel和VBA的书籍,但由于工作繁忙,这很慢。 任何帮助是极大的赞赏。 先感谢您。 冷淡:)
您只需要为每个按钮创建一个事件,然后在子例程中,在操作包含的单元格时专门为工作表命名。 避免使用select语句,而只需进行所需的更改。 我展示了几种不同的方法来做同一件事,以便将来可以根据需要进行调整。 有时您会想要专门命名范围。 有时您会希望通过其他代码或循环来动态创建它。
单击按钮有一个事件处理程序。
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
考虑:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.