繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM