我在这里得到了一个代码,同时研究如何根据标准将细胞添加到定义的范围 . 这是代码:
Dim rng1 As Range
Dim rng2 As Range
Dim c As Range
Set rng1 = Range("N1:N10")
For Each c In rng1
' Add cells to rng2 if it is highlighted with a certain color
If c.Interior.ColorIndex = 43
If Not rng2 Is Nothing Then
Set rng2 = Union(rng2, c)
Else
' the first valid cell becomes rng2
Set rng2 = c
End If
End If
Next
我计划对检索到的单元格做的是获取值并添加它们 . 我最初的计划是使用公式SUM(),其中和的范围是假定的rng2 . 为了让我把它放在这个公式中,我必须从检索范围中提取细胞 . 经过研究,我偶然发现了这段代码:
Function RangeToString(ByVal myRange As Range) As String
RangeToString = ""
If Not myRange Is Nothing Then
Dim myCell As Range
For Each myCell In myRange
RangeToString = RangeToString & ";" & myCell.Value
Next myCell
'Remove extra comma
RangeToString = Right(RangeToString, Len(RangeToString) - 1)
End If
End Function
通过以下功能和代码,我进行了一次测试,以检查它是否拾取了任何突出显示的单元格 . 可悲的是,它没有在我编码的测试单元上发布任何值 . 这是我做的示例代码:
Dim totalsum As String
totalsum = RangeToString(rng2)
ThisWorkbook.Sheets("format").Range("N" & counter).Value = totalsum
提前致谢!抱歉这个冗长的问题 .
1 回答
如果你需要的只是
rng2
的总和,你可以使用Worksheetfunction.Sum()
并使用rng2
作为参数 .无需解析要在工作表中使用的范围中每个单元格的各个值 .