我有多个电子表格,每个大致如下所示:
我正在尝试找到一种方法来遍历第 1 行中的每个 SPEAKER HEADERS,并总结与相应调查问题相关的分数(“内容是否良好?SPEAKER 是否相关?交付效果如何?)按颜色分组。
我想不出一个聪明的方法来自动执行此操作。
我可以像这样获得合并单元格的范围跨度:
For Each Cell In src_sheet.UsedRange.Cells
If Cell.Row = 1 And IsEmpty(Cell) = False Then
MsgBox Cell.MergeArea.Address
End If
Next
然后我需要遍历地址提供的范围,获取该范围以下所有行中的数值。
例如,运行当前宏会产生:
我需要使用$C$1:$E$1
并运行一个 for 循环,该循环说从 C1 到 E1 平均它下面的行中的所有数字。 我不知道该怎么做。
我正在考虑增加选择,包括使用的所有内容
有一个更好的方法吗?
这是我现在正在做的可悲的糟糕方式(由于我是 excel 新手,我对此感到非常自豪):
For Each Cell In src_sheet.UsedRange.Cells
If Cell.Row = 1 And IsEmpty(Cell) = False Then
Set rng = Range(Cell.MergeArea.Address) 'Equal to the Address of the Merged Area
startLetter = Mid(rng.Address, 2, 1) 'Gets letter from MergeArea Address
endLetter = Mid(rng.Address, 7, 1) 'Gets letter from MergeArea Address
On Error GoTo ErrHandler:
Set superRange = Range(startLetter & ":" & endLetter)
ErrHandler:
endLetter = startLetter
Set superRange = Range(startLetter & ":" & endLetter)
Resume Next
superRange.Select
MsgBox Application.Average(Selection)