excel - 如何利用右键功能选择表格中的多个单元格进行计算?
问题描述
我有一个看起来像这样的表:
Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C25:C35", "I25:I35")) Is Nothing Then
If Target.Cells.Count = 1 Then
Cancel = True
Sheets("Sheet1").Range("G42") = Target.Value
Cancel = True
Target.Interior.Color = vbGreen
End If
End If
End Sub
当我右键单击 CLTV 表中的任何单元格时,它会突出显示绿色并自动填充下面以黄色突出显示的单元格中的值。我可以选择多个单元格,所有单元格都以绿色突出显示,但是,右键单击的最后一个单元格将自动填充 Total Purp./Char.LLPAs (#2): 字段中的值。
我希望实现的是能够右键单击表格中的多个单元格(所有单元格都突出显示,如示例所示)并以某种方式添加选定的单元格 0.250 + 0.375 + 0.250 + 0.500 并将总和自动填充到总 Purp./Char.LLPAs (#2):字段。
那可能吗?
提前致谢。
解决方案
试试这个 - 我想这就是你要找的东西?需要更多说明
Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim cell As Range
If Not Intersect(Target, Range("C25:C35", "I25:I35")) Is Nothing Then
If Target.Cells.Count = 1 Then
Cancel = True
Sheets("Sheet1").Range("G42") = 0
Target.Interior.Color = vbGreen
For Each cell In Range("C25:C35", "I25:I35")
If cell.Interior.Color = vbGreen Then
Sheets("Sheet1").Range("G42") = Sheets("Sheet1").Range("G42") + cell.Value
End If
Next cell
End If
End If
End Sub
要重置所有颜色,请将其分配给一个按钮或单独运行它:
Sub ResetColors()
Sheets("Sheet1").Range("G42") = 0
With Range("C25:C35", "I25:I35").Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
推荐阅读
- android - 具有资源的 .aar 绑定库在应用程序的构建时失败
- python-3.x - 为什么解决方案 2 的条件排序比解决方案 1 快得多?
- javascript - 箭头函数中 Object.values() 的未知行为
- c# - 需要根据多类数据过滤数据
- windows - 在 Windows 中安装 Drake(通过 docker)时出现问题
- php - 为 Laravel 配置 Homestead
- r - 如果一个变量属于一个集合
- javascript - 如何使用脚本标签正确设置 FullCalendar?
- swift - 一种快速输入以下 if 语句的方法
- manim - 在哪里可以找到更多或更少的 mobject 详细描述?