【发布时间】:2015-10-16 15:24:23
【问题描述】:
我正在尝试编写一个 VBA 函数来获取一个函数(“汇总”),以便在选择工作表时更新某个范围的值。
我对特定工作表代码中的不同工作表重复了此操作,但 我不知道如何创建单个函数,该函数将使用工作表名称和范围名称(例如“rngXF” ) 和汇总函数的值(例如“XF”)
Private Sub Worksheet_Activate()
Dim c As Range
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For Each c In Range("rngXF")
c.Value = Rollup(c, "XF")
Next c
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
只是一个想法,使用 sheetname 和 range 参数创建一个 sub,然后使用 activate 触发它并将值传递给 sub 以实际执行它
-
1) 这个“汇总”功能已经实现了吗? 2)您可以使用如下输入参数创建一个子:(Sub Test(ByVal param1 as Integer,ByVal param2 as String))。
-
@MarcoGetrost 是的 - 它总结了其他工作表上特定单元格的值,工作表名称包含“x”。潜艇应该放在哪里?
-
听起来您想要 Workbook_SheetActivate(ByVal Sh As Object) 中的某些内容。它是 Workbook 的一种方法,但每次激活一张工作表时都应该触发它。